先行ジョブの実行を待つ。
ジョブ A とジョブ B はそれぞれ cron で定時に実行される。
ジョブ B はジョブ A より後の時間に実行される。
ジョブ A がまだ実行中の場合はジョブ B はその終了を待たなければならない。
以上の要件を満たすためによくある原始的な手法として、一時ファイルを利用して実行をロックする方法がある。
ジョブ A
#!/bin/sh touch jobA.lock hogehoge # 処理 test -f jobA.lock && rm jobA.lock
ジョブ B
#!/usr/bin/env ruby lock = true while lock if FileTest.exist?("jobA.lock") sleep 10 # 10 秒待つ else lock = false end end hogehoge # 処理
この手の命題をクールに解決する方法は無いものだろうか。