レーキタスク内でRedisとResqueスケジューラを開始しようとしています
-
24-10-2019 - |
質問
RedisとRedis-Schedulerをレーキタスクから始めたいので、以下をやっています。
namespace :raketask do
task :start do
system("QUEUE=* rake resque:work &")
system("rake redis:start")
system("rake resque:scheduler")
end
end
問題は、Redisが前景から始まり、これがスケジューラを開始することはないことです。バックグラウンドで開始されない場合(使用&)。 Redisが稼働した後、スケジューラを起動する必要があります。
解決
nirvdrumに似ています。 Redisがまだ実行されていない場合、接続を受け入れていない場合、Resqueワーカーは失敗/終了します。
方法の例については、この要点をチェックしてください モニットから始めましょう (Linuxのもの)。
Monitを使用すると、あるサービスを別のサービスに依存させ、.PIDファイルを監視して、それらが生き続けることを確認します。
他のヒント
それは私を素晴らしいアイデアではないと思います。 redisサーバーは、initスクリプトなどを介して開始する必要があります。しかし、本当にこのようにしたい場合は、おそらくRedisを変更する必要があります。TTYから切断してプロセスを実行し続けることができるように、[ノートと背景]を使用してタスクを開始する必要があります。
所属していません StackOverflow