0
我用下面的代碼與延遲作業執行的方法:延遲工作排隊,並在數據庫中出隊的工作,但不執行代碼(本地)
class MyClass
def send_a_text
t = TwilioCommunicator.new
t.send_sms("+15177416150","sent at #{Time.now}")
end
handle_asynchronously :send_a_text
end
t = MyClass.new
t.send_a_text
無延遲工作,這給我發了一條短信100 % 的時間。由於延遲作業,我可以看到這個作業在數據庫中排隊,然後出隊,但代碼似乎不運行。我在本地測試,這裏是從我development.log片段:
AREL (0.5ms) INSERT INTO "delayed_jobs" ("priority", "attempts", "handler", "last_error", "run_at", "locked_at", "failed_at", "locked_by", "created_at", "updated_at") VALUES (0, 0, '--- !ruby/struct:Delayed::PerformableMethod
object: !ruby/object:MyClass {}
method_name: :send_a_text_without_delay
args: []
', NULL, '2011-07-28 05:24:47.700969', NULL, NULL, NULL, '2011-07-28 05:24:47.701070', '2011-07-28 05:24:47.701070')
AREL (2.9ms) UPDATE "delayed_jobs" SET locked_at = '2011-07-28 05:24:51.191404', locked_by = 'delayed_job host:Stephen-B-Silverbergs-MacBook.local pid:3714' WHERE (id = 13 and (locked_at is null or locked_at < '2011-07-28 01:24:51.191404') and (run_at <= '2011-07-28 05:24:51.191404'))
AREL (0.3ms) DELETE FROM "delayed_jobs" WHERE ("delayed_jobs"."id" = 13)
有一件事我注意到的是method_name是send_a_text_without_delay代替send_a_text但是這是我看到的唯一奇怪的事情。有任何想法嗎?