Voer elke N minuten een Cron-taak uit plus offset

*/20 * * * *

Zorgt ervoor dat het elke 20 minuten wordt uitgevoerd, ik wil graag elke 20 minuten een taak uitvoeren, beginnend om 5 over het uur, kan dit met Cron? Zou het zijn:

5/20 * * * *?


Antwoord 1, autoriteit 100%

Probeer het volgende om elke 20 minuten een taak uit te voeren vanaf 5 over het uur:

5-59/20 * * * *

Uitleg

Een *in het minutenveld is hetzelfde als 0-59/1waarbij 0-59het bereiken 1is de stap. De opdracht wordt uitgevoerd op de eerste minuut in het bereik(0), daarna op alle opeenvolgende minuten die met stap(1) verwijderd zijn van de eerste, tot de laatste ( 59).

Daarom wordt */20 * * * *uitgevoerd op 0 minuten, 20 minuten daarna en 40 minuten daarna — wat hetzelfde is als elke 20 minuten. Echter, */25 * * * *wordt uitgevoerd op 0 minuten, 25 minuten daarna en 50 minuten daarna — wat niet hetzelfde is als elke 25 minuten. Daarom is het meestal wenselijk om een ​​stapwaarde te gebruiken in het minutenveld dat gelijkmatig wordt verdeeld in 60.

Dus om de starttijd te compenseren, specificeert u het bereik expliciet en stelt u de eerste waarde in op het bedrag van de offset.

Voorbeelden

5-59/20 * * * *wordt 5 minuten daarna, 25 minuten daarna en 45 minuten daarna uitgevoerd.

10-59/25 * * * *wordt 10 minuten daarna en 35 minuten daarna uitgevoerd.

1-59/2 * * * *wordt elke oneven minuut uitgevoerd.


Antwoord 2, autoriteit 12%

Natuurlijk!

5,25,45 * * * * /your/cron

Antwoord 3, autoriteit 3%

Je kunt proberen: */5 * * * * sleep N; your job

Other episodes