Scheduler Task

Was vormals die CLI Skripte waren die per Cron ausgeführt werden, ist nun als Scheduler Task in TYPO3 möglich. Allerdings auch nicht ganz einfach zu konfigurieren - und vor allem hat man in den Klassen nicht den vollen Zugriff auf das Extbase Framework und die eigenen Repositories und Klassen.

Aber nun die Anleitung wie man zum Ziel kommt.

Task anlegen

Zunächst wird die Klasse Classes/Tasks/Mailing.php angelegt:

<?php
/**
 * Task
 *
 * @package rsyssurvey
 * @license www.gnu.org/licenses/lgpl.html GNU Lesser General Public License, version 3 or later
 *
 */
class Tx_Rsysworkbook_Tasks_Mailing extends tx_scheduler_Task {
   
   
    public function execute() {
       
        // do the job...
       
        // so scheduler is satisfied...
        $successfullyExecuted = true;               
        return $successfullyExecuted;

    }
   
}
?>

Wichtig ist die Rückgabe des Werts true, sonst wird im Scheduler eine fehlerhafte Ausführung angezeigt.

Task laden

Damit obiger Code geladen wird muss eine Datei ext_autoload.php angelegt werden mit folgenden Inhalt:

<?php
$extensionPath = t3lib_extMgm::extPath('rsysworkbook');
return array(
        'Tx_Rsysworkbook_Tasks_Mailing' => $extensionPath . 'Classes/Tasks/Mailing.php'
        );
?>

Scheduler Task anlegen

Angelegt wird die Task zunächst in ext_localconf.php:

$TYPO3_CONF_VARS['SC_OPTIONS']['scheduler']['tasks']['Tx_Rsysworkbook_Tasks_Mailing'] = array(
        'extension' => $_EXTKEY,
        'title' => 'Workbook Mailings',
        'description' => 'Workbook Mailings versenden per Cronscript',
);

Dann geht man im Backend auf Scheduler (Planer) -> Informationen und klickt bei Workbook Mailings auf das Plus Symbol und hat dann einen Eintrag für die Task erstellt.

Wenn Fehler bei der Ausführung auftreten muss man wieder hierher und den Status wieder zurücksetzen, ansonsten wird die Task nicht mehr weiter ausgeführt (Scheduler bricht ab bei Fehler und den Fehler beheben reicht alleine nicht aus).

Cron

Unter Konfiguration prüfen findet man den Pfad zu dem benötigen Aufruf durch den Cron (CLI-Skript: .../cli_dispatch.phpsh scheduler)

Debuggen

Wenn man den Befehl cli_dispatch.phpsh scheduler auf der Konsole eingibt sieht man die Ausgabe des Tasks Classes/Tasks/Mailing.phpund kann sich so Debug Ausgaben anzeigen lassen.

Erstellt: 09/2012| Geändert: 10/2015