一度に1つのレーキタスクのみが実行されていることを確認する方法は?

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

質問

Cronを介して実行するようにレーキタスクをセットアップしたいです。それは簡単ですが、簡単ではないのは、そのレーキタスクのコピーが一度に実行されていることを保証することです。システムでPSを使用して、既に実行されている場合にレーキタスクをチェックしてから終了することができます。または、タスクの名前をシリアル化してdbを削除する遅延したジョブ構造を実行できますが、dbを削除しますが、何をお勧めしますか?

役に立ちましたか?

解決

Unixはこの問題をPIDファイルで解決しました。 PIDファイルは /var /runにあり、プログラムプロセスIDが含まれています。これが男のページです: http://fuse4bsd.creo.hu/localcgi/man-cgi.cgi?pidfile+3

あなたはそれを少し昔ながらにするかもしれません(そして私は同意します)が、それはよく使われ、実証済みの方法です。

他のヒント

使用できます https://rubygems.org/gems/only_one_rake, 、namespaceのように:rails dosc "online user count" only_one_task:online_user_count =>:環境do loop {onlineuser.count;スリープ1}終了

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