Zum Hauptinhalt springen

Integritätscheck

Der Integritätscheck kann fehlerhafte Eingaben im Hinblick auf die Anwesenheitskontrolle überprüfen. Folgende Fehler werden aktuell überprüft:

  • Kind ist anwesend, obwohl es eine Abwesenheitsmeldung gibt
  • Kind ist parallel in mehreren Unterrichten anwesend
  • Anwesenheitsstatus wechsels mehr als einmal täglich

Diese Checks benötigen ca. eine halbe Sekunde pro Kind und sollten daher im Hintergrund laufen. Dies ist jedoch auf konventionellen Web-Hostern nicht möglich.

regelmäßiger Check im Hintergrund

Zunächst muss die Umgebungsvariable ASYNC_CHECKS auf true gesetzt werden in der .env.local.

Es gibt einen Cronjob, der nachts um 1 Uhr für alle Lernenden einen Check veranlasst. Damit diese Checks asynchron abgearbeitet werden, wird der Symfony Messenger genutzt. Folgender systemd-Dienst muss dazu angelegt werden:

[Unit]
Description=ICC Integritätscheck

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

[Install]
WantedBy=default.target

Die Parameter limit-limit und memory-limit können entsprechend angepasst werden.