我想从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启动并运行后启动调度程序。
答案 0 :(得分:1)
类似于nirvdrum。如果redis尚未运行并接受连接,resque工作人员将失败/退出。
查看这个要点,了解如何get things started with monit(linux的东西)。
Monit允许一个服务依赖于另一个服务,并通过监视.pid文件确保它们保持活跃状态。
答案 1 :(得分:0)
这让我觉得不是一个好主意。您应该通过init脚本或其他东西启动redis服务器。但是,如果你真的想这样做,你可能需要修改你的redis:启动任务以使用nohup和后台进程,这样你就可以断开与TTY的连接并保持进程运行。