2016-09-09 5 views
0

私は遅延ジョブをエンキューするコードを実行する既存のキュウリスイートを実行していますが、どれも "run_at"条件を含んでいません。しかし、私は今、 "run_at"で将来エンキューされるジョブを導入しました。しかし、私が新しい機能を実行すると、そのジョブがすぐに実行されていることがわかります。Delayed ::キュウリ試験でジョブrun_atが受け入れられない

私は、セットアップファイルのこのやや有望行が見つかりました:私は、値をtrueに変更すると役立つと期待が、それは仕事のどれもが実行されないことになり

# Run all delayed jobs inline 
Delayed::Worker.delay_jobs = false 

を。

どのようにしてrun_atを受け取り、まだエンキューしたらすぐに他のジョブを実行できますか?

答えて

1

だから、これは今や理にかなっています。 "Delayed :: Worker.delay_jobs = false"を指定すると、ジョブはインラインで実行されます。これをtrueに設定すると、ジョブがデータベースに格納されます。 。 。彼らはどこにいても働かないために永遠にそこに座ります!

0

遅延ジップ4.1.0 now supportsDelayed::Worker.delay_jobsがブロックです。

あなたは行うことができます:

Delayed::Worker.delay_jobs = ->(job) { 
    job.run_at && job.run_at > Time.now.utc 
} 
関連する問題