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

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/System | PHP |
|---|---|
| Novatrend | /usr/local/bin/php |
| Hostpoint | php |
| 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