CLI und Scheduler · Frage 9 von 12
Ein Import-Befehl wird per Cron jede Minute gestartet, ein Lauf kann aber länger dauern. Zwei Läufe dürfen nie gleichzeitig arbeiten. Wie verhindert man das mit TYPO3-Mitteln?
1 Antwort ist richtig. Mittel
Lösung anzeigen
Lösung
- D Über die LockFactory einen Locker mit LOCK_CAPABILITY_EXCLUSIVE | LOCK_CAPABILITY_NOBLOCK erzeugen, acquire() versuchen und bei Misserfolg sofort beenden
Erklärung
Die LockFactory wählt eine passende Sperrstrategie (Datei, Semaphore, …). Mit NOBLOCK kehrt acquire() sofort zurück, statt zu warten, der zweite Lauf kann sich also sauber beenden. Am Ende gibt release() die Sperre frei. Ein selbst gebautes Kennzeichen in der Registry bleibt nach einem Absturz stehen und ist nicht atomar. Für Scheduler-Tasks gibt es zusätzlich die Einstellung zur parallelen Ausführung.