65389


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

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

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

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

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


CC BY-SA 4.0
2020-04-06T00:44:39.490
65379
2020-04-06T22:42:56.093
2020-04-06T06:20:01.743
3060
17238
question
cron
cronで開始時間がバッティングする二つ以上のjobの実行順序制御


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

[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にジョブの同期を考慮した機能はありませんでした。


CC BY-SA 4.0
2020-04-06T04:06:24.533
65389
2020-04-06T11:42:20.233
2020-04-06T11:42:20.233
35558
35558
65379
answer


前後をつけなくてはいけない要件が出てくると、ジョブスケジューラ(JP1/Job Center/Rundeck)を利用するのが一般的ではないかと思います。  
簡単なものでは、Jenkinsもジョブの前後を付けられますし、時間投入など柔軟に対応可能です。ご呈示の同期機能は障害発生時に面倒になりそうで、可能な限り避けたいと。。。  
♯同期機能持たせるぐらいならそれは１ジョブにまとめることを検討すべきとなるのでは？？


CC BY-SA 4.0
2020-04-06T22:42:56.093
65414
2020-04-06T22:42:56.093
10174
65379
answer