2013-10-31 8 views
6

私は現在、レーキタスクとして実行されているいくつかのプロセスを持っています。サイドループを使ってプロセスを連続ループで実行することはできますか?それはサイドキックのベストプラクティスですか?サイドキックを連続プロセスに使用できますか?

これらのプロセスは、それぞれのレーキタスクの連続ループでバックグラウンドで実行されますが、時折失敗することがあります。次に、レーキタスクを再開する必要があります。

私はSOコミュニティの助けを借りて、いくつかのオプションを試しています。一つは、monitでレーキタスクをどのように監視するかを理解することです。しかし、それは各プロセスが独自の環境を持っていなければならないことを意味し、サーバー負荷を増やします。私は仮想化された環境で動いているので、可能な限り、それを排除したい。

もう1つのオプションは、私が既に持っているSidekiqオプションを利用することです。バックグラウンド処理のためにSidekiqを使用していますが、それはいつも一回限りです。私はサイドキックで継続的なプロセスを持つことができる方法はありますか?また、障害が発生したことを通知され、プロセスが自動的に再起動されますか?

+0

数ヶ月が経過しているので質問者に回答があるかどうかを確認してください。 – tentimes

+0

解決策はこれまでにありましたか?私は同様の解決策を望んでいます – jamesc

答えて

2

Sidekeqの著者Mike Perham氏の回答は、このようなスケジュールされた作業にcronという仕事を使用することです。 にジョブをサブミットして、バックグラウンドで実行するrakeタスクを作成できます。次に、スケジュールするcronジョブを作成します。

1

私はあなたがなぜsidekiに行くのかわかりませんが、このプロジェクトは特定ですか?以前私は同じ問題に直面しましたが、私はdelayed_jobに移行し、私のニーズを満たしています。アクティブなレコードオブジェクトがトランザクション使用の場合はdelayed_job、それ以外の場合はそれも良い方法です。

+1

ほとんどの人はSidekiqに移行しました。これは、Rails環境全体をスピンアップする必要がなく、システムオーバーヘッドをほとんど発生させずに並行して大量のジョブを実行できるからです。 – AKWF

関連する問題