我正在开发一个具有用RubyonRails编写的Web服务器的项目。另一个人启动了这个项目的代码,我得到了所有的代码。这个服务器使用了delayed_job。生产服务器运行正常,没有任何问题。但是,当我想在我的本地服务器上运行它时,没有任何delayed_job任务运行。我没有收到任何错误,例如,当我运行rake作业时:在我的本地服务器上工作,我提交一份工作,这是输出:
[工人(主持人:ardrossan pid:20474)]开始求职者
[Worker(host:ardrossan pid:20474)] Job Delayed :: PerformableMethod(id = 2)RUNNING
[工人(主持人:ardrossan pid:20474)] 1份工作以17.9446 j / s处理,0失败
但没有产生任何结果。 关于如何让delayed_jobs在我的本地服务器上运行的任何建议都表示赞赏。
我应该提到我正在使用'rails','3.2.17'而我的操作系统是Ubuntu 12.04.4 LTS
答案 0 :(得分:0)
认为你必须使用工头在本地启动后台工作人员。以下工作在我的Mac上。
来自Heroku docs:
然后,您需要告诉您的应用程序处理放入作业队列的作业,您可以将其添加到Procfile
:
worker: bundle exec rake jobs:work
现在,当您使用Foreman启动应用程序时,它将开始处理您的作业队列。
foreman start
说了这么多,除非你在Mac上部署,否则它们在本地运行并不重要。 (我在工作之后就注意到了这一点。)只有它适用于您的服务器才有意义。如果你在Heroku上部署,那么Delayed Job工作得很好。
参考:
https://devcenter.heroku.com/articles/delayed-job
https://devcenter.heroku.com/articles/procfile
http://blog.daviddollar.org/2011/05/06/introducing-foreman.html
https://github.com/ddollar/foreman
答案 1 :(得分:0)
你需要自己动手,因为你没有任何工人可以单独触发你的行为。