質問: job A: 3分に1回 job B: 10分に1回 とすると、毎時30分にA,Bの実行時間が被りますが、Bの実行中はAは待たなければならないという要件があります。毎時30分は、B,Aの順で実行してほしいのですが、そういったスケジュールの指定方法は可能でしょうか? 下記のような解決方法もあると思いますが、cronだけで解決できる方法がないかの質問になります。 1. A,Bを一つのスクリプトにまとめる 2. A,Bにファイルロック等の同期機構を設ける。
回答: 汎用性のある書き方ではありませんが、以下で実現できるはずです。 ``` 3,6,9,12,15,18,21,24,27,33,36,39,42,45,48,51,54,57 * * * * A 10,20,40,50 * * * * B 0,30 * * * * B;A ``` Bの処理時間によっては、Bの実行中にAが走り出します。 逆のパターンもあります。 1.や2.の方法を検討すべきと思います。 少し調べてみましたが、cronにジョブの同期を考慮した機能はありませんでした。