毎分実行される cron ジョブがあり、最初の反復が 62 秒間実行される場合、2 回目の反復は最初の発生が終了するまで開始を待機しますか、それとも同じ cron ジョブが同時に実行される可能性がありますか?
これを説明するには、シナリオ 1 を参照してください。
|0 |60 |120 |180 |240 |300
------ Cron Job 1 Taking 60 Seconds
--------- Cron Job 2 Taking 90 Seconds
------ Cron Job 3 Taking 90 Seconds but overlapping with the previous cron job
上記のことが起こるか、またはシナリオ 2 が起こるか:
|0 |60 |120 |180 |240 |300
------ Cron Job 1 Taking 60 Seconds
--------- Cron Job 2 Taking 90 Seconds
XXX-------Cron Job 3 waiting til the next 1 minute interval starts
私の懸念は、実行中の cron ジョブがない XXX とマークされた 30 秒間の期間があることです。
私は何を達成しようとしていますか?PHPスクリプトを毎秒無期限に実行したい。1 秒に 1 回実行する必要はありませんが、RUN、END、RUN、END、RUN、END の順に実行する必要があります。反復に 5 秒かかる場合、最初の反復が終了してから次の反復を開始する必要があります。しかし、それは決して止めてはなりません。問題は、反復の長さを判断できないことです。1 回の反復に 1 秒かかることもあれば、5 秒、またはそれ以上かかることもあります。
- cronはこれを行うことができますか?スクリプトが毎秒実行されることを保証できるようにするにはどうすればよいですか?
- そうでない場合、PHP スクリプトが無期限に実行され、反復が繰り返されることをどのように保証できますか?