Zum Hauptinhalt springen

Cronjobs

Cronjobs können entweder direkt im Clubhouse, über die Adminkonsole des Webservers oder mit Hilfe eines Commands eingerichtet werden.

Cronjobs

Voraussetzungen​

PHP​

Um einen Command bzw. Konsolenbefehl auszuführen, muss bekannt sein, wo sich die ausführbare php-Datei befindet. Dabei hilft der Befehl which.

which php

Hier ein paar Beispiele:

Installation/SystemPHP
Novatrend/usr/local/bin/php
Hostpointphp
Plesk/opt/plesk/php/8.2/bin/php
Mac OS (Homebrew)/opt/homebrew/opt/php@8.1/bin/php

Installationsverzeichnis von Clubhouse​

Beim Croneintrag müssen Log- und Fehlerdateien angegeben werden. Dafür muss der physische Installationspfad von Clubhouse bekannt sein.

Liste der Cronjobs​

Hier ein Zusammenfassung:

*/5 * * * * php /Users/andy/www/clubhouse23/bin/console messenger:consume async --time-limit=60 -vv >> /Users/andy/www/clubhouse23/var/mailer.log 2>> /Users/andy/www/clubhouse23/var/mailer.err
30 0 * * * * php /Users/andy/www/clubhouse23/bin/console ch23:app:logmobileuserupdate > /Users/andy/www/clubhouse23/var/logmobileuserupdate.log 2> /Users/andy/www/clubhouse23/var/logmobileuserupdate.err
0 1 * * * php /Users/andy/www/clubhouse23/bin/console ch23:db:clean log_api 1000 created_at > /Users/andy/www/clubhouse23/var/cleanlogapi.log 2> /Users/andy/www/clubhouse23/var/cleanlogapi.err
10 1 * * * php /Users/andy/www/clubhouse23/bin/console ch23:db:clean log_app 1000 created_at > /Users/andy/www/clubhouse23/var/cleanlogapp.log 2> /Users/andy/www/clubhouse23/var/cleanlogapp.err
30 1 * * * rm -f /Users/andy/www/clubhouse23/var/mailer.err > /Users/andy/www/clubhouse23/var/rmmailer.log 2> /Users/andy/www/clubhouse23/var/rmmailer.err

Emailversand​

Versendete E-Mails werden zunächst in einer Warteschlange gesammelt (d.h. in der DB-Tabelle mail_queue) und nicht sofort verschickt. Ein Worker-Prozess übernimmt den Versand, nachdem er per Konsolenbefehl gestartet wurde. Der Worker läuft standardmäßig eine Minute (dieser Wert ist über einen Parameter anpassbar).

Konsolenbefehl:​

messenger:consume async --time-limit=60 -vv

Croneintrag​

Der Worker soll alle 5 Minuten gestartet werden:

*/5 * * * * php /Users/andy/www/clubhouse23/bin/console messenger:consume async --time-limit=60 -vv >> /Users/andy/www/clubhouse23/var/mailer.log 2>> /Users/andy/www/clubhouse23/var/mailer.err

Statistikdaten​

Daten aus der Tabelle log_api in komprimierter Form (pro Tag und Benutzer 1 Eintrag) in die Tabelle log_mobile_user kopieren. Bereits kopierte Daten werden nicht erneut kopiert. Der Konsolenbefehl berücksichtigt das automatisch.

Konsolenbefehl​

Beschreibung siehe ch23:app:logmobileuserupdate

Croneintrag​

Der Konsolenbefehl soll jeweils um 00:30 gestartet werden:

30 0 * * * * php /Users/andy/www/clubhouse23/bin/console ch23:app:logmobileuserupdate > /Users/andy/www/clubhouse23/var/logmobileuserupdate.log 2> /Users/andy/www/clubhouse23/var/logmobileuserupdate.err

Tabelleneinträge löschen​

Damit Tabellen wie log_api oder log_app nicht unendlich wachsen, müssen von Zeit zur Zeit Daten gelöscht werden.

Konsolenbefehl​

Beschreibung siehe ch23:db:clean

Croneintrag​

Zwei Einträge für die Tabellen log_api (01:00) und log_app (01:10):

0 1 * * * php /Users/andy/www/clubhouse23/bin/console ch23:db:clean log_api 1000 created_at > /Users/andy/www/clubhouse23/var/cleanlogapi.log 2> /Users/andy/www/clubhouse23/var/cleanlogapi.err
10 1 * * * php /Users/andy/www/clubhouse23/bin/console ch23:db:clean log_app 1000 created_at > /Users/andy/www/clubhouse23/var/cleanlogapp.log 2> /Users/andy/www/clubhouse23/var/cleanlogapp.err

Logfile löschen​

Die Logdatei mailer.err, die von Emailversand erzeugt wird, löschen.

Croneintrag​

Start um 01:30

30 1 * * * rm -f /Users/andy/www/clubhouse23/var/mailer.err > /Users/andy/www/clubhouse23/var/rmmailer.log 2> /Users/andy/www/clubhouse23/var/rmmailer.err