Neues Event: AfterTaskExecutionEvent im TYPO3 Scheduler
TYPO3 14.3.3 bringt ein neues PSR-14 Event, das nach jeder Scheduler-Ausführung feuert — inklusive Erfolg, Fehler und Exception. Und warum ich selbst dafür gesorgt habe, dass es in den Core kommt.
Der TYPO3 Scheduler hat bisher keine Möglichkeit geboten, nach außen zu signalisieren ob ein Task erfolgreich war oder nicht.
Genau das war der Ausgangspunkt für EXT:f_status, eine Extension, die ich während meiner Anstellung bei Fonda entwickelt habe. Sie zeigt im TYPO3-Dashboard & Report-Modul, welche Scheduler-Tasks überfällig oder fehlgeschlagen sind.
AfterTaskExecutionEvent
AfterTaskExecutionEvent ist seit TYPO3 14.3.3 Teil von EXT:scheduler. Das Event
wird am Ende jeder Task-Ausführung dispatched.
Das Event liefert drei Informationen: die Task-Instanz via getTask(), den Erfolg
via isSuccess() und eine etwaige Exception via getException().
EXT:f_status als konkretes Beispiel
EXT:f_status nutzt das Event, um den Status von Scheduler-Tasks im Dashboard
anzuzeigen. Wer eine eigene Extension hat, die Tasks ausführt, kann über ein
StatusReporter-Interface eigene Einträge liefern:
<?php
declare(strict_types=1);
namespace GeorgRinger\SitePackage\StatusReporter;
use Fonda\FStatus\StatusReporterInterface;
use TYPO3\CMS\Scheduler\Task\IpAnonymizationTask;
class IpStatusReporter implements StatusReporterInterface
{
public function getIdentifier(): string
{
return IpAnonymizationTask::class;
}
public function getLabel(): string
{
return 'IP Anonymization';
}
public function getExpectedMaxAge(): ?\DateInterval
{
return \DateInterval::createFromDateString('4 hours');
}
}
Die Klasse wird automatisch per Dependency Injection erkannt — kein zusätzlicher
Eintrag in Services.yaml nötig.
Open-Source Liebe
Das ist das Schöne an Open Source: Man kann Dinge verändern, die man selbst braucht.