cronで開始時間がバッティングする二つ以上のjobの実行順序制御


job A: 3分に1回  
job B: 10分に1回

とすると、毎時30分にA,Bの実行時間が被りますが、Bの実行中はAは待たなければならないという要件があります。毎時30分は、B,Aの順で実行してほしいのですが、そういったスケジュールの指定方法は可能でしょうか？

下記のような解決方法もあると思いますが、cronだけで解決できる方法がないかの質問になります。

1.  
A,Bを一つのスクリプトにまとめる

2.  
A,Bにファイルロック等の同期機構を設ける。




汎用性のある書き方ではありませんが、以下で実現できるはずです。

[code]

    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
    
[/code]

Bの処理時間によっては、Bの実行中にAが走り出します。  
逆のパターンもあります。  
1.や2.の方法を検討すべきと思います。  
少し調べてみましたが、cronにジョブの同期を考慮した機能はありませんでした。




汎用性のある書き方ではありませんが、以下で実現できるはずです。

[code]

    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
    
[/code]

Bの処理時間によっては、Bの実行中にAが走り出します。  
逆のパターンもあります。  
1.や2.の方法を検討すべきと思います。  
少し調べてみましたが、cronにジョブの同期を考慮した機能はありませんでした。

