0

rake タスクを cron 経由で実行するようにセットアップしたいと考えています。それは簡単ですが、その rake タスクのコピーが一度に 1 つしか実行されないようにすることは簡単ではありません。システムで ps を使用して rake タスクをチェックしてから、既に実行されている場合は終了できると思います。または、タスクの名前をシリアル化し、完了時に DB から削除する遅延ジョブ構造を実行することもできますが、皆さんは何をお勧めしますか?

4

2 に答える 2

0

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

少し古風な感じがするかもしれませんが(私も同意します)、よく使用され、実績のある方法です。

于 2010-09-10T19:25:58.587 に答える
0

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

于 2013-01-14T06:00:17.333 に答える