CLI rb script maar 1 keer via de crontab laden

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Daniel van Seggelen

Daniel van Seggelen

08/12/2017 17:23:59
Quote Anchor link
HEt 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?
 
PHP hulp

PHP hulp

17/12/2018 21:43:52
 
Dennis WhoCares

Dennis WhoCares

08/12/2017 20:33:03
Quote Anchor link
Hi 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.
 
- Ariën -
Beheerder

- Ariën -

08/12/2017 20:34:48
Quote Anchor link
Met andere woorden, je creëert op die manier een 'lock-file'. En dit is ook de meeste simpele manier.
 
Rob Doemaarwat

Rob Doemaarwat

08/12/2017 22:07:35
Quote Anchor link
Als 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

Thomas van den Heuvel

10/12/2017 16:35:52
Quote Anchor link
En 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?
 
Daniel van Seggelen

Daniel van Seggelen

14/12/2017 21:22:29
Quote Anchor link
Sorry 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.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.