Delayed_Job - 现场5服务器
问题描述:
我目前正在使用site5服务器,并且想要 rake jobs:work
几乎一直在运行。 我目前无法发送作业,除非我登录到服务器。我希望有人能帮助我。在ar_mailer
和whenever
宝石上遇到了很多麻烦......但还有另外5个宝石可以在我的Rails应用程序中完美工作。Delayed_Job - 现场5服务器
有人可以解释一下这个问题吗? 非常感谢。 (安装delayed_job作为插件)
答
OK我对此有一个解决办法,这是我能做到的最好,但它工作在一定程度上... 我利用cron作业和自定义脚本/ jobrunner文件。
我创建了jobrunner脚本位于script/jobrunner
包含以下
#!/usr/bin/env ruby
require File.dirname(__FILE__) + '/../config/environment'
Delayed::Worker.new.start
然后在cron作业我做到了运行该文件。
在cron报告中,我仍然遇到一些错误,但工作仍在继续,我很满意!
例如,cron作业每半小时运行一次,它会遍历表中的所有delayed_jobs并处理它们。这是我发现我的问题的下一个最佳解决方案。希望这可以帮助未来的人。
去看看我能为日常/每周任务想出哪些其他脚本。
答
如果您正在使用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"
答
延迟作业附带一个脚本,用于在后台自行启动并记录到log/delayed_job.log。您可以启动一个守护进程的delayed_job,像这样在开发模式下运行:
RAILS_ENV=development script/delayed_job start
不幸的是不使用capistrano。而当我运行脚本/ delayed_job开始或脚本/ delayed_job重新启动没有错误引发,但工人不会在后台运行。我仍然有我失去一些东西的感觉。 此外,当我运行脚本/ delayed_job运行我得到“未初始化常量Delayed :: Backend :: ActiveRecord :: Base” 必须有一些简单的我想念。 感谢您的尝试。 – 2010-04-05 04:40:33
尝试http://github.com/collectiveidea/delayed_job分支。正在积极和积极地开发它,使其更加强大。 – 2010-04-05 13:00:10
再次感谢乔纳森,我正在使用这一个,而不是因为这个原因托比。它处理delayed_job并将其放入表中,唯一的问题是我想让工作人员始终运行,而不必继续调用“rake jobs:work”。我可以在配置初始化程序中设置延迟,这不是问题,即使设置了一个cron作业来完成此操作,出于某种原因,它只是不想工作...... :( – 2010-04-05 14:13:35