我有一个工作文件,我正在使用delayed_job驱动程序。
它可以在以后执行。
我的工作档案: 的作业/ test_job_job.rb
class TestJobJob < ActiveJob::Base
queue_as :default
def perform(*args)
puts("test")
end
def test_method
puts('test method')
end
end
在我的控制器中,我做到了,
TestJobJob.perform_later
它工作正常并给了我正确的输出: 输出:
[Worker(host:hunter pid:8079)] Job ActiveJob::QueueAdapters::DelayedJobAdapter::JobWrapper (id=18) RUNNING
test
[Worker(host:hunter pid:8079)] Job ActiveJob::QueueAdapters::DelayedJobAdapter::JobWrapper (id=18) COMPLETED after 0.0397
[Worker(host:hunter pid:8079)] 1 jobs processed at 1.3259 j/s, 0 failed
但是当我改为时,
TestJobJob.delay(run_at: 2.minutes.from_now)
工作甚至没有出现,当我做的时候,
TestJobJob.delay(run_at: 2.minutes.from_now).test_method
它给了我错误:TestJobJob的未定义方法`test_method'
我的配置:application.rb
config.active_job.queue_adapter = :delayed_job