スポンサーリンク

20秒に1回実行するcronの書き方

MD5の変換/逆変換ツール」について毎分100件ずつデータ登録を行うバッチ処理のログを見たところ、思ってたより待ち時間が多くデータもあまり溜まっていなかったので20秒に1回100件のデータを登録するようにcronの設定を変えました。

cronの最小の設定単位は分のため秒の指定をどうするのかを調べたところ、以下ようにsleepでプロセスを待ち状態にしたあとに行いたい処理を実行すれば良いとのことでした。

* * * * * flock -n /tmp/[script_name].lock /var/www/[app_name]/bin/cake [script_name]
* * * * * sleep 20; flock -n /tmp/[script_name].lock /var/www/[app_name]/bin/cake [script_name]
* * * * * sleep 40; flock -n /tmp/[script_name].lock /var/www/[app_name]/bin/cake [script_name]

sleepコマンドにより20秒、40秒待った後にCakePHPのバッチを実行するように設定しました。

設定後のログを確認で20秒ごとに呼び出されていることが確認できました。
本件とは関係ないですが上の画像の実行時間を記載している箇所について単位が間違っており正しい単位は秒になります。

タイトルとURLをコピーしました