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