Jenkins を cron の代替として使う場合には重複実行が防げる

Jenkins

今さら説明の必要はないかと……。

f:id:gregminster:20170903151047p:plain

Jenkins を(すごい)cron として使う

Jenkins は、そのジョブの設定次第で(すごい)cron として使うことができます。以下のページをご参照ください。大変に便利です。

重複実行が防げる

Jenkins の用途を考えれば当たり前のことではあるんですが、cron の重複実行を防ぐことができます*1。たとえば、実行に 5分 かかる cron が存在した際に、その cron の実行間隔が 1分 と設定されていても、前回の cron の実行が終わっていなければ重複して実行されることがない、ということです。

現実の運用としては、何らかの原因で実行が長期化してしまった cron について、次の定期実行時刻が追いついてしまった場合に役立つでしょう。そのような場合に重複して実行されることがありません*2

結論

Jenkins 便利!(すごい)cron 用途のためだけに導入してもよいくらいです。設計の問題に目をつぶるのならば、ウェブアプリケーションの Worker としても使えそうですね。

*1:設定により、あえて重複実行を許すこともできる

*2:順番待ちキューには並ぶので、前回実行が終わった時点で続いて実行されることにはなります

Powered by はてなブログ