[英]Rails/delayed_job just… not working
我花了大約3個小時來嘗試執行一個簡單的delayed_job
,但未成功執行。 我有一個非常簡單的工作:
class Foo
def foo
`echo foo >> /tmp/mrsmee`
end
end
我將它加入一個Rails動作中,如下所示:
Foo.new.delay.foo()
我正在像這樣運行作業處理器:
$ script/delayed_job run
我看到了一堆這樣的輸出日志,
2013-05-13T15:21:12-0700: [Worker(delayed_job host:asha.local pid:73263)] 1 jobs processed at 35.6405 j/s, 0 failed ...
以及諸如此類的delayed_backend_mongoid_jobs
條目,
{ "_id" : ObjectId("51916452005056107900001a"), "priority" : 0, "attempts" : 0, "queue" : null, "handler" : "--- !ruby/object:Delayed::PerformableMethod\nobject: !ruby/object:Foo {}\nmethod_name: :foo\nargs: []\n", "run_at" : ISODate("2013-05-13T22:08:18.560Z"), "updated_at" : ISODate("2013-05-13T22:08:18.560Z"), "created_at" : ISODate("2013-05-13T22:08:18.560Z") }
因此很明顯,作業正在排隊,處理和出隊。 /tmp/mrsmee
,測試輸出文件/tmp/mrsmee
從未寫入任何內容。 我完全不知所措。 為什么delayed_job
實際上沒有運行延遲的工作,或者至少告訴我是什么阻止了延遲的工作呢?
可能有點晚了,但是:
問題不在於DelayedJob,而在於您的方法。 DelayedJob正在執行Foo.new.foo。
如果您嘗試這樣做:
class Foo
def foo
puts "hey!, the job is being executed!"
end
end
並且您在DelayedJob的輸出日志中看到該字符串,則delayJob正常工作
您是否檢查過Rails(DelayedJob)有權在/ tmp文件夾中寫入?
此代碼也可能有幫助(已創建test.txt並將其寫入您的應用文件夾中):
class Foo
def foo
`echo foo >> #{Rails.root.join "test.txt"}` #remember to delete test.txt!
end
end
如果這可行,即創建了test.txt文件且其內容為foo,則問題應該出在具有權限的地方,因此sudo script/delayed_job run
可能會有所幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.