Delayed_job守护进程不能在开发中运行吗?

时间:2011-11-05 16:15:03

标签: ruby-on-rails-3 delayed-job

我正在使用delayed_job并且我能够使用rake作业运行作业:工作但使用守护程序版本,虽然我在进程列表中看到它但它什么也没做。

我正在使用:

  • rails(3.0.9)
  • delayed_job(2.1.4)
  • 守护进程(1.0.10)

我正在使用:

运行delayed_job
unix>RAILS_ENV=development script/delayed_job start

2 个答案:

答案 0 :(得分:3)

要回答您的问题,我们可能需要更多信息。

是否将作业添加到数据库?工作中是否有错误?

我已经提到RAILS_ENV=development script/delayed_job status的结果是什么?

第二,你是否经历过最常见的问题维基页面?

https://github.com/collectiveidea/delayed_job/wiki/Common-problems

答案 1 :(得分:3)

加载自定义作业类文件可能会出现问题。要测试一下,试试这个:

  • 输入rails控制台rails console --sandbox
  • 确保您在表job = Delayed::Job.first中找到了一份工作。
  • 试试YAML.load(job.handler)。如果您收到如下错误:ArgumentError: undefined class/module MyCustomClass,则可能是加载自定义作业时出现问题
  • 仍然在rails控制台中,运行require 'My_Custom_Class。然后再次运行YAML.load(job.handler)命令。如果这返回了相应的对象,那肯定是一个类加载问题。

要解决此问题,请创建文件config/initializers/custom.rb并在其中放置require 'My_Custom_Class'

然后,您应该能够运行rake jobs::workoff并获得如下所示的内容:

[Worker(host:my.host pid:5085)] Starting job worker
[Worker(host:my.host pid:5085)] MyCustomJob completed after 0.0774
[Worker(host:my.host pid:5085)] 1 jobs processed at 9.1935 j/s, 0 failed ...
[Worker(host:my.host pid:5085)] No more jobs available. Exiting