レーキタスク内でRedisとResqueスケジューラを開始しようとしています

StackOverflow https://stackoverflow.com/questions/5316054

  •  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から切断してプロセスを実行し続けることができるように、[ノートと背景]を使用してタスクを開始する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top