CLI rb script maar 1 keer via de crontab laden
Daniel van Seggelen
08/12/2017 17:23:59HEt is zo.
Ik heb een ruby script die ik laad. Maar hij kapt er soms mee na een tijd inactief te zijn.
Ik zou graag willen dat ik in een crontab dit script laad om bijv een uur en dat hij hem niet dubbel laad.
Hij mag maar 1 keer actief geladen worden.
Ik lees dit over het lock mechanisme:
https://stackoverflow.com/questions/42884888/ruby-file-lock-with-nfs-to-run-single-instance-of-the-script
Maar ik weet niet of dit de beste wijze is om dit script te implemteren?
Ik heb een ruby script die ik laad. Maar hij kapt er soms mee na een tijd inactief te zijn.
Ik zou graag willen dat ik in een crontab dit script laad om bijv een uur en dat hij hem niet dubbel laad.
Hij mag maar 1 keer actief geladen worden.
Ik lees dit over het lock mechanisme:
https://stackoverflow.com/questions/42884888/ruby-file-lock-with-nfs-to-run-single-instance-of-the-script
Maar ik weet niet of dit de beste wijze is om dit script te implemteren?
PHP hulp
09/11/2024 03:38:48Dennis WhoCares
08/12/2017 20:33:03Hi Daniel,
ik ben niet bekend met ruby, maar je kan het zo simpel maken als je zelf wilt.
Je kan bijv. controlleren of er een file bestaat aan het begin van je script.
Zo niet, maak je de file aan.
Als de file er wel is, stop dit script
Aan het einde van je script, deze file weer verwijderen.
ik ben niet bekend met ruby, maar je kan het zo simpel maken als je zelf wilt.
Je kan bijv. controlleren of er een file bestaat aan het begin van je script.
Zo niet, maak je de file aan.
Als de file er wel is, stop dit script
Aan het einde van je script, deze file weer verwijderen.
Met andere woorden, je creëert op die manier een 'lock-file'. En dit is ook de meeste simpele manier.
Rob Doemaarwat
08/12/2017 22:07:35Als je dan checkt of een bestandje al bestaat - en hij bestaat, check dan ook even hoe oud ie al is. Als je script normaal altijd met een uur (of twee) klaar is, en het bestand is inmiddels 4 uur of ouder, dan is er waarschijnlijk iets mis gegaan => aan de alarmbel trekken, en evt bestand verwijderen = opnieuw beginnen. Dat laatste alleen als het "geen kwaad kan" (of in ieder geval minder kwaad dan een proces dat het hele weekend niet loopt).
Thomas van den Heuvel
10/12/2017 16:35:52En zorg ook dat het aanmaken+controleren van de lock-file atomair geschiedt, anders heb je enkel het probleem verplaatst :p.
Als het script gebruik maakt van een database zou je dit daar direct op kunnen lossen met behulp van een transactie?
Als het script gebruik maakt van een database zou je dit daar direct op kunnen lossen met behulp van een transactie?
Daniel van Seggelen
14/12/2017 21:22:29Sorry voor de late reactie,
Het lijkt simpel, maar ik ben geen linux specialist en heeft iemand en voorbeeld hoe ik elke 3 uren kan kijken of een script actief aan het laden is, en zoniet starten?
Ik krijg het niet voor elkaar.
Het lijkt simpel, maar ik ben geen linux specialist en heeft iemand en voorbeeld hoe ik elke 3 uren kan kijken of een script actief aan het laden is, en zoniet starten?
Ik krijg het niet voor elkaar.