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.