0

私は自分のプロジェクトでdelayed_jobを使用していますが、今までコンソールで rake jobs:work を呼び出していました。

しかし今、具体的なイベントの後にジョブの処理を停止し、他のイベントの後に処理を続行しようとしています。

この動作をシミュレートするために、スクリプト config/initializers/delayed_jobs.rb を作成しました

puts "START DELAYED JOB PRE"
`script/delayed_job start`
puts "START DELAYED JOB POST"

そして、最初のプットのみが呼び出され、サーバーは命令に夢中になり、Web は表示されません。

stop を呼び出してdelayed_jobsを開始して正しい動作を得る方法は?

4

2 に答える 2

0

それを独自のスレッドに移動できます。

puts "START DELAYED JOB PRE"
Thread.new do
    `script/delayed_job start`
end
puts "START DELAYED JOB POST"
于 2012-11-20T13:29:12.410 に答える
0

ワーカーを維持する責任がある外部デーモンを使用することをお勧めします。キューresque-pool用に設計されたものについては、非常に良い経験がありました。resque通常、このようなデーモンでは、マスター プロセスにシグナルを送信するだけでワーカーを一時停止できます。また、展開の再起動と管理が非常に簡単になります。

于 2012-11-20T14:10:05.240 に答える