Zum Hauptinhalt springen

Hintergrundaufgaben

Einige Aufgaben wie bspw. der E-Mail-Versand werden asynchron im Hintergrund ausgeführt. Dazu wird der Symfony Messenger versendet. Dieser wird standardmäßig als Hintergrunddienst über einen Supervisor (bspw. systemd unter Linux) ausgeführt. Das setzt jedoch voraus, dass man Zugriff auf diesen hat. Bei Webhostern ist dies klassischerweise nicht der Fall.

systemd-Prozess für allgemeine Hintergrundaufgaben

Ein entsprechender systemd-Prozess sieht folgendermaßen aus (~/.config/systemd/user/icc-background.service):

[Unit]
Description=ICC Hintergrundaufgaben

[Service]
WorkingDirectory=/path/to/icc/
ExecStart=/usr/bin/php /path/to/icc/bin/console messenger:consume async --time-limit=3600 --memory-limit=256M
Restart=always
RestartSec=30

[Install]
WantedBy=default.target

Die Optionen time-limit und memory-limit können bei Bedarf angepasst werden.

systemd-Prozess für E-Mail-Versand

Für den E-Mail-Versand wird ein weiterer Prozess benötigt, da der E-Mail-Versand - im Gegensatz zu den anderen Aufgaben - limitiert wird. Die Anzahl an E-Mails pro Minute wird durch die Konfigurationsvariable MAILER_LIMIT festgelegt.

Ein entsprechender systemd-Prozess sieht folgendermaßen aus (~/.config/systemd/user/icc-mails.service):

[Unit]
Description=ICC Mails

[Service]
ExecStart=/usr/bin/php /path/to/icc/bin/console messenger:consume mail --time-limit=3600
Restart=always
RestartSec=30

[Install]
WantedBy=default.target

Die Option time-limit kann bei Bedarf angepasst werden.

Dienste aktivieren und starten

$ systemctl enable --user icc-background.service
$ systemctl enable --user icc-mails.service

$ systemctl start --user icc-background.service
$ systemctl start --user icc-mails.service