sql >> Database >  >> RDS >> Mysql

Hoe een dynamische functie plannen met cron-taak?

Cron-taken vereisen dat je de tijden voorinstelt waarop ze worden uitgevoerd, ze kunnen niet (ja je zou dit kunnen hacken door een script te hebben dat je crontab bewerkt, maar ik zou niet zeggen dat dat een heel goed idee is) hun tijd om dynamisch te laten lopen bepaald. Dit betekent dat je in wezen twee opties hebt:

1) Stel een cronjob in om elke minuut uit te voeren en gebruik een tijdelijk bestand dat u aanraakt om de laatste keer te vertellen dat het een van de geplande taken heeft uitgevoerd. Elke keer dat het wordt uitgevoerd, controleert het of er een taak was om te worden uitgevoerd tussen de laatste tijdstempel van uw tijdelijke bestand en de huidige tijd, en als die er is, wordt de taak uitgevoerd. Dit is een grove maar eenvoudige oplossing.

2) Gebruik geen cron. Maak een daemon die controleert op welke tijden taken moeten worden uitgevoerd en zet ze in een prioriteitswachtrij, dan springt het vroegste element en slaapt totdat het tijd is om die taak uit te voeren. Het voert de taak uit en voegt deze opnieuw in om 24 uur in de toekomst te worden uitgevoerd en wordt herhaald. Deze oplossing is veel eleganter, maar vereist ook meer werk.



  1. Leg gedrag uit bij het in kaart brengen van automatisch geïncrementeerde samengestelde id-reeksen met Hibernate

  2. ClusterControl CMON HA voor hoge beschikbaarheid van gedistribueerde databases - deel twee (GUI Access Setup)

  3. Maak een bash-script voor het bewaken van MySQL-query's

  4. INSERT meerdere records met ruby ​​on rails actieve record