LIMESODA Blog

TYPO3 Scheduler Task

Disclaimer: Der Inhalt dieses Artikels bezieht sich auf die TYPO3-Versionen bis inklusive TYPO3 9.5. Für neuere Versionen empfiehlt sich die Erstellung eines Console Commands.

Im TYPO3-Backend ist es mit der Extension „Scheduler“ möglich gewisse Tasks, sei es das Versenden von Log-Files via E-Mail oder das Löschen von Cache-Files, ausführen zu lassen. Da diese Tasks im Backend übersichtlich dargestellt werden, hat man einen guten Überblick und kann sie recht effizient verwalten.

Ich erkläre hier kurz, wie man ganz schnell einen eigenen Task für den Scheduler einrichten kann.

Zuerst im Ordner „/typo3conf/ext/“ manuell eine neue Extension erstellen, sprich anfangs einen Ordner anlegen. z.B.: „mytask“.

Das File /typo3conf/ext/mytask/ext_emconf.php mit folgendem Inhalt erstellen:

<?php

$EM_CONF[$_EXTKEY] = [
    'title' => 'My Extension',
    'description' => 'This extension is doing awesome stuff',
    'category' => 'misc',
    'author' => 'My name',
    'author_email' => 'my-author-email@example.org',
    'author_company' => 'My company',
    'state' => 'stable',
    'uploadfolder' => 0,
    'clearCacheOnLoad' => 0,
    'version' => '1.0.0',
    'constraints' => [
        'depends' => [
            'typo3' => '9.5.0-9.5.99',
        ],
        'conflicts' => [
        ],
        'suggests' => [
        ],
    ],
];

Als nächstes /typo3conf/ext/mytask/ext_localconf.php anlegen und wie folgt befüllen:

<?php

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks']['TYPO3\Mytask\Task\ExampleTask'] = [
   'extension' => 'mytask',
   'title' => 'Example Task',
   'description' => 'This task is doing something really important',
];

?>

Im Ordner /typo3conf/ext/mytask/ folgende Struktur + File „Classes/Task/ExampleTask.php“ anlegen:

<?php
   namespace TYPO3\Mytask\Task;
   
   class ExampleTask extends \TYPO3\CMS\Scheduler\Task\AbstractTask {
      public function execute() {
         //dein code mit fehlerabfragen (return false;) etc.
         return TRUE; //ende gut, alles gut?
      }
   }
?>

Als nächstes die Extension an die eigenen Bedürfnisse anpassen, aktivieren und im Scheduler den Task einrichten. Dann kann der Task entweder einmalig oder wiederkehrend ausgeführt werden.

Die mobile Version verlassen