问题标签 [sidekiq]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - 如何获取worker任务的值?
我无法理解。如何获得 sidekiq 或 resque worker 任务的结果?例如:
如何得到结果?
ruby - 使用 Heroku 在应用程序之间共享消息队列
我有两个 Web 应用程序,都托管在 Heroku 上。一个是前端应用程序,从某种意义上说,所有面向消费者的操作都将通过这个应用程序。新注册等。另一个是后端,它处理新客户、他们的订单和相关业务逻辑的所有处理。我需要这些应用程序相互通信并在它们之间传递数据。我宁愿不在 BE 应用程序上编写 api,因为只有 FE 应用程序会使用它,这意味着我需要花时间编写安全规则和限制以防止其他人访问它。
我的问题是我是否可以在它们之间使用共享消息队列,这是否是一个好主意,以及在 Heroku 上是否可行?此用例是否存在附加组件/服务?列出的大多数排队插件在同一个应用程序中都有工作人员和任务创建者。
我一直在将 Sidekiq 视为一种可能性,因为 BE 应用程序无论如何都需要一个队列来处理其他任务,这似乎是一个很好的候选者,但我不确定即使我在应用程序之间提供了一个共享的 Redis 实例, Sidekiq 有能力在它们之间传递消息。有人知道吗?
ruby-on-rails - Heroku 和 ruby 中的后台上传
目前我有一个在后台(Sidekiq)任务中将图像上传到 S3 的应用程序。它工作得很好,但是我不得不“破解”一个解决方案,并且对任何知道更好的方法来做到这一点的人感到好奇。
问题:在 Heroku 上使用 Paperclip 和后台作业时,工作人员通常无法访问 tmp 文件,因为它是在不同的服务器上启动的。我试图让回形针使用 Heroku 上的 tmp 文件夹,并将其存储在那里,但是后台任务总是返回“找不到文件”。
临时解决方案:这导致必须将图像编码为 base64 字符串并将其传递给执行任务(恶心、糟糕、可怕、开销大)。
有没有更好的方法在 Heroku 上做到这一点?我不想将图像 blob 保存到数据库中,因为这也是一种不好的做法。
ruby - 重启 Sidekiq
重启sidekiq的正确方法是什么。当我启动它时,它似乎缓存了我的工人代码,所以每次我对我的工人进行更改时,我都需要重新启动它。我正在使用 Ctrl/C 执行此操作,但该过程需要很长时间才能结束并将我返回到提示符。
有没有办法立即强制重启?
我正在使用通过 POW 运行的 Sinatra 的最新版本。
ruby - Sidekiq 不创建 PID 文件
为了停止 Sidekiq,我需要使用:
$bundle exec sidekiqctl stop /Users/me/Documents/sites/some_site/tmp/pid/sidekiq.pid 20
我告诉 Sidekiq 在 config.yml 文件中创建一个 pid 文件:
并告诉 Sidekiq 这个配置文件在哪里使用:
$ bundle exec sidekiq -C /Users/me/Documents/sites/some_site/config.yml
但是,当我运行 Sidekiq 时,它不会创建 .pid 文件,所以我无法停止它。那么它为什么不创建一个 .pid 文件呢?
ruby - 使用 God Gem 设置流程启动顺序
有没有可能让上帝依次启动两个过程?
我正在使用依赖 Redis 的 Sidekiq。我想启动 Redis,然后启动 Sidekiq,我设置了两个独立的手表,它们可以独立工作,但是当我运行时:
$ god -c "./config.god" -D
似乎上帝试图同时启动两者,导致 Sidekiq 出错,因为它可以t 连接到 Redis 服务器。
我给上帝的配置文件如下:
ruby-on-rails - 如何查看 Sidekiq 中有关工人的统计信息?
我们可以通过它的 API获得一些关于 sidekiq 状态的信息。没有适用于工人的 API 方法。
我想知道某个班级正在运行多少工人。例如,我有一个名为的类FooStreamer.rb
,它是用perform_async
方法执行的。我想知道它目前正在运行多少个工人。
有任何想法吗?
ruby-on-rails - 如果我使用 w.keepalive,God Gem 会启动手表,但如果我使用 $god sidekiq start 则不会
我正在努力将Sidekiq与God Gem一起使用。我希望能够使用 手动启动sidekiq 进程$god start sidekiq
,但是无法启动该进程。如果我设置 w.keepalive(在下面的代码中注释掉),我只能让它启动 sidekiq 进程。
我正在使用:$ god -c "./config.god" -D --log-level info
启动上帝,在前台启动上帝,这让我得到以下输出:
使用$god start sidekiq
我得到:
但是我没有从上帝那里得到任何输出,sidekiq 的日志中没有写入任何内容,而且我可以清楚地看到使用$ ps auxwww | grep sidekiq
.
ruby-on-rails - 从爆发的战争开始 sidekiq
我们当前的生产部署使用jenkins 将warble 生成的war 文件部署到Tomcat。整个事情就像一个魅力。然而,我遇到的问题是如何通过“bundle exec sidekiq [options]”在这台机器上启动 sidekiq 的工作人员。理想情况下,我希望避免在这台机器上设置一个完整的单独的 ruby 环境来执行此操作,但无论哪种方式正常运行,sidekiq 都需要访问已爆炸/已安装的应用程序环境等。
有没有一种公认的方式来做这样的事情?有没有更好的方法在像这样的情况下启动 sidekiq ?
ruby-on-rails - 是否可以将 Blocks 或 Procs 作为参数发送给 Sidekiq?
我有一个标准系统,用于对各种数据集执行计算。很棒的是我可以将这些计算作为 Proc 传递给 perform 方法。这是我想要完成的事情:
这种事情是可能的还是不好的做法?我知道直接发送对象是不好的做法,所以我假设发送块也是一个坏主意?