【问题标题】:Start sidekiq from a rake task从 rake 任务启动 sidekiq
【发布时间】:2014-11-19 11:03:24
【问题描述】:

我正在尝试通过执行 rake 任务来启动 Sidekiq。这是我的代码。

namespace :sidekiq do
  task start: :environment do
    system "bundle exec sidekiq -C 'Path To Config File' -P 'Path For PID File' -d -L 'Path To Log File'"
  end
end

当我使用命令运行 rake 任务时

rake sidekiq:开始

它启动了 sidekiq,但 rake 任务一直在等待 Sidekiq 的响应。我的 rake 任务不等待 Sidekiq 或在 Sidekiq 启动时结束的任何解决方案。

【问题讨论】:

  • 这很奇怪。它应该已经在守护进程了。
  • 是的,你是对的。它正在守护进程,但 rake 任务一直在等待响应。
  • 只需在末尾添加 & 即可。
  • 我也试过了。结果是一样的。

标签: ruby-on-rails sidekiq rake-task


【解决方案1】:

你应该改用工头。

用你的 sidekiq 行添加一个 Procfile 文件(类似):

worker: bundle exec sidekiq -C 'Path To Config File' -P 'Path For PID File' -d -L 'Path To Log File'

您可能会发现本教程很有用: http://blog.daviddollar.org/2011/05/06/introducing-foreman.html

【讨论】:

  • 感谢您的解决方案,但我已经使用守护程序修复了该 rake 任务。 :)
  • @RqBukhari 你能把你的解决方案写成一个独立的答案吗?
  • @TetianaChupryna 我将启动 sidekiq 添加到我的部署脚本(Capistrano)中。我不再使用 rake 任务了。
  • @TetianaChupryna 如果你必须使用 rake 任务,那么你可以试试这个系统 "bundle exec sidekiq -P 'PATH TO PID FILE' -d -L 'PATH TO LOG FILE'"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-25
  • 1970-01-01
  • 1970-01-01
  • 2010-10-09
  • 2012-11-15
  • 2014-12-05
相关资源
最近更新 更多