2011-07-28 7 views
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であるが、これは私が見る唯一の奇妙なことです。何か案は?

答えて

0

RailsプロジェクトのMyClassオブジェクトはどこにありますか? app/modelに含まれていない場合は、Delayed_Jobが動作するようにイニシャライザでクラスを参照する必要があります。この問題は、delayed_jobで黙って失敗します。

参照:Rails Delayed Job & Library Class

関連する問題