簡単に実行できるようにするために約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
は何も書き込まれません。私は完全に途方に暮れています。遅延ジョブを実際に実行しないのはなぜですかdelayed_job
、または少なくともそれを妨げている理由を教えてくれますか?