尝试在rake任务中启动redis和resque调度程序

时间:2011-03-15 18:07:11

标签: ruby-on-rails-3 redis resque

我想从rake任务启动redis和redis-scheduler,所以我正在做以下事情:

namespace :raketask do
  task :start do
    system("QUEUE=* rake resque:work &")
    system("rake redis:start")
    system("rake resque:scheduler")
  end
end

问题是redis在前台启动然后从未启动调度程序。如果它不会在后台启动(使用&)。必须在redis启动并运行后启动调度程序。

2 个答案:

答案 0 :(得分:1)

类似于nirvdrum。如果redis尚未运行并接受连接,resque工作人员将失败/退出。

查看这个要点,了解如何get things started with monit(linux的东西)。

Monit允许一个服务依赖于另一个服务,并通过监视.pid文件确保它们保持活跃状态​​。

答案 1 :(得分:0)

这让我觉得不是一个好主意。您应该通过init脚本或其他东西启动redis服务器。但是,如果你真的想这样做,你可能需要修改你的redis:启动任务以使用nohup和后台进程,这样你就可以断开与TTY的连接并保持进程运行。