Delayed_Job - 在site5服务器上

时间:2010-04-04 13:11:09

标签: ruby-on-rails cron ruby-on-rails-plugins delayed-job whenever

我目前正在使用site5服务器并希望 rake jobs:work几乎一直在运行。 除非我登录到服务器,否则我目前无法发送作业。我希望有人可以帮助我。 ar_mailerwhenever宝石有很多麻烦......但是我的rails应用程序中还有另外5颗宝石可以正常工作。

有人可以解决这方面的问题吗? 非常感激。 (将delayed_job作为插件安装)

3 个答案:

答案 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