/
Pack Hosting Panel

Hipex cron run commando

Hoe zorg ik ervoor dat cronjobs niet tegelijk draaien of niet stoppen?


In de praktijk zien wij bij Hipex vaak meerdere cronjobs tegelijk draaien welke dezelfde taak uitvoeren. Dit wordt vaak veroorzaakt door het feit dat een volgende cronjob eerder wordt gestart als dat de vorige taak klaar is.

Daarnaast kan het voorkomen dat een cronjob niet wordt afgerond en oneindig blijft draaien. Dit kan verschillende oorzaken hebben, vaak is dit gerelateerd aan een indexer / service welke niet wordt afgerond.

Om bovenstaande issues te voorkomen, en hiermee de stabiliteit te verbeteren hebben we een hipex tool ontwikkeld die dit moet voorkomen. In dit artikel leggen we je uit hoe je gebruik kan maken van deze tool.

Hipex cron:run

Om de tool te kunnen gebruiken dien je ingelogd te zijn op de betreffende server. Je kan vervolgens gebruik maken van het volgende hipex commando:

hipex cron:run 'command' 'identifier' --timeout 900

Zoals te zien is, dien je als argumenten command en identiefier meegeven:

  • Command: Het commando dat je wilt uitvoeren
  • Identifier: De identifier van het commando welke je wil uitvoeren, dit mag je zelf bedenken. De identifier wordt gebruikt om een uniek Lock en log bestand te genereren.

Je kan met de --help optie alle informatie over het commando opvragen:

Usage:
  cron:run [options] [--] <commandJob> <identifier>

Arguments:
  commandJob               The command to be executed
  identifier               Identifier of the command to be executed

Options:
      --debug[=DEBUG]      Write command output to stdout and stderr instead of log file. [default: false]
      --timeout[=TIMEOUT]  Timeout in seconds (s). The maximum time in seconds the command may take. [default: 1800]
  -h, --help               Display this help message
  -q, --quiet              Do not output any message
  -V, --version            Display this application version
      --ansi               Force ANSI output
      --no-ansi            Disable ANSI output
  -n, --no-interaction     Do not ask any interactive question
  -v|vv|vvv, --verbose     Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

Help:
  Run any job

Zoals te zien is kan je aan het commando ook de volgende opties worden meegegeven:

  • debug: Kan worden ingeschakeld zodat de output in je terminal wordt gelogd in plaats van in een log file (standaard staat debug uit).
  • timeout: Tijd in seconden dat de taak mag duren (standaard 1800 sec (= 30 min))

In onderstaand voorbeeld gebruiken we het cron run commando om de cron van magento uit te voeren:

hipex cron:run 'cd /home/hipex/domains/hipex.io/application && php bin/magento cron:run' 'magento-cron' --timeout 900