Probleem: Cron Jobs Vaker Uitvoeren Dan Eens Per Minuut
Cron jobs in Linux worden gewoonlijk uitgevoerd met intervallen van één minuut of langer. Soms moet je taken vaker uitvoeren, zoals elke 10 seconden. Dit kan een probleem zijn voor taken die bijna onmiddellijk moeten worden uitgevoerd.
Meerdere Cron Entries Gebruiken met Sleep Commando's
De Cron Jobs Instellen
Om een taak elke 10 seconden in Linux uit te voeren, kun je meerdere cron entries gebruiken met sleep commando's. Deze methode gebruikt zes cron entries die elke minuut worden uitgevoerd, elk met een andere sleep duur. Door de uitvoeringstijden uit te spreiden, kun je een interval van 10 seconden tussen elke taakuitvoering verkrijgen.
Het proces omvat:
- Zes cron entries maken die elke minuut worden uitgevoerd
- Sleep commando's toevoegen aan elke entry om de uitvoeringstijd te verschuiven
- Hetzelfde commando gebruiken voor elke entry
Hier is een voorbeeld van deze cron entries:
* * * * * /usr/bin/wget http://api.us/application/
* * * * * sleep 10; /usr/bin/wget http://api.us/application/
* * * * * sleep 20; /usr/bin/wget http://api.us/application/
* * * * * sleep 30; /usr/bin/wget http://api.us/application/
* * * * * sleep 40; /usr/bin/wget http://api.us/application/
* * * * * sleep 50; /usr/bin/wget http://api.us/application/
In deze setup wordt de eerste entry aan het begin van elke minuut uitgevoerd. De volgende entries gebruiken sleep commando's om hun uitvoering te vertragen met 10, 20, 30, 40 en 50 seconden. Dit creëert een patroon waarbij het commando elke 10 seconden gedurende elke minuut wordt uitgevoerd.
Deze methode helpt je om de limiet van één minuut van cron te omzeilen en je taak met intervallen van 10 seconden uit te voeren.
Tip: Loggen van Cron Job Uitvoering
Om de uitvoering van je cron jobs te monitoren en te verifiëren dat ze op de juiste intervallen worden uitgevoerd, voeg je een logging commando toe aan elke entry. Bijvoorbeeld:
* * * * * /usr/bin/wget http://api.us/application/ && echo "$(date): Job executed" >> /var/log/cron_job.log
* * * * * sleep 10; /usr/bin/wget http://api.us/application/ && echo "$(date): Job executed" >> /var/log/cron_job.log
Dit zal een logbestand maken met tijdstempels voor elke job uitvoering, wat je helpt bij het bijhouden en debuggen van je cron setup.





