我目前正在使用site5服务器并希望
rake jobs:work
几乎一直在运行。
除非我登录到服务器,否则我目前无法发送作业。我希望有人可以帮助我。 ar_mailer
和whenever
宝石有很多麻烦......但是我的rails应用程序中还有另外5颗宝石可以正常工作。
有人可以解决这方面的问题吗? 非常感激。 (将delayed_job作为插件安装)
答案 0 :(得分:1)
如果您使用的是capistrano,请在部署应用时启动delayed_job。将其添加到部署配方文件中。
require 'delayed/recipes'
after "deploy:stop", "delayed_job:stop"
after "deploy:start", "delayed_job:start"
after "deploy:update_code", "delayed_job:stop"
after "deploy:restart", "delayed_job:start"
答案 1 :(得分:1)
好的我有一个解决方法,这是我能做的最好但是它在某种程度上有效... 我使用了CRON作业和自定义脚本/作业管理器文件。
我创建了位于script/jobrunner
的 jobrunner 脚本,其中包含以下内容
#!/usr/bin/env ruby
require File.dirname(__FILE__) + '/../config/environment'
Delayed::Worker.new.start
然后在一个cron作业中,我让它运行该文件。
在cron报告中,我仍然会遇到一些错误,但是这些工作仍在运行,我很满意!
例如,cron作业在第50分钟每小时运行一次,它会遍历表中的所有delayed_jobs并处理它们。这是我发现问题的下一个最佳解决方案。希望这有助于将来的某个人。
要查看我可以为每日/每周任务设置的其他脚本。
答案 2 :(得分:1)
延迟作业附带一个脚本,用于在后台启动并登录到log / delayed_job.log。您可以在开发模式下启动守护进程的delayed_job,如下所示:
RAILS_ENV=development script/delayed_job start