cronの三つの弱点
cronの代換となるプラグインclockwork - maeshimaの日記を使うべきなのかなあというのを考えていて、Rethinking Cronのエントリにたどり着きました。cronの欠点について書かれていたのでざっくり訳してまとめます。
スケールしたときにめんどい
- 共有しているところ(DBとかmemcacheとか)が複数のjobで競合しないようにlockしないといけない
- lock がうまいこといってなかったらlockを削除したりとかしないといけなくてめんどい
デバッグしにくい
- cronの文法はわかりにくいので時間を間違えやすい
- シェルの環境がcronjobと通常のユーザとで違うので変なことになりやすい
- 変なことになってもフィードバックが少ないので調べにくい
バックグラウンドで実行できない
- 長めのjobを実行するときには job queueing と worker があった方がいい。cronはそれがない。
感想
cronの欠点については納得。
でも全てのcronタスクをいちいち全部clockworkに置き換えなくてもいいかなーという風に感じた。ある程度規模の大きい(あるいは大きくなりそうな)タスクやシステムの時に有効かな。