我正在使用delayed_job并且我能够使用rake作业运行作业:工作但使用守护程序版本,虽然我在进程列表中看到它但它什么也没做。
我正在使用:
我正在使用:
运行delayed_jobunix>RAILS_ENV=development script/delayed_job start
答案 0 :(得分:3)
要回答您的问题,我们可能需要更多信息。
是否将作业添加到数据库?工作中是否有错误?
我已经提到RAILS_ENV=development script/delayed_job status
的结果是什么?
第二,你是否经历过最常见的问题维基页面?
https://github.com/collectiveidea/delayed_job/wiki/Common-problems
答案 1 :(得分:3)
加载自定义作业类文件可能会出现问题。要测试一下,试试这个:
rails console --sandbox
。job = Delayed::Job.first
中找到了一份工作。YAML.load(job.handler)
。如果您收到如下错误:ArgumentError: undefined class/module MyCustomClass
,则可能是加载自定义作业时出现问题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