FYI. This blog is translated by machine. Please ignore any spelling and grammar errors; sorry for such inconvenience. We appreciate your understanding and support.
Sind Sie auf der Suche nach Wissen über den TYPO3 Scheduler? Dann sind Sie hier richtig. In diesem Blog-Beitrag finden Sie Kenntnisse für Anfänger und Fortgeschrittene zu TYPO3 Scheduler-Aufgaben, Symfony-Konsolenbefehlen und TYPO3-Cron-Jobs etc.
TYPO3 hat seit mehr als 20 Jahren einen eingebauten Scheduler bzw. eine Planer-Funktion - ich bin wirklich stolz darauf, Teil eines so fantastischen TYPO3 CMS zu sein. Glücklicherweise ist es so einfach, den TYPO3 Scheduler zu konfigurieren und zu verwenden, um Aufgaben zu automatisieren. Soweit ich weiß, hat kein anderes Opensource-CMS einen solchen Zeitplan innerhalb des Kerns.
Und... Liebe TYPO3-Leser, als mein Start-up-Ritual möchte ich diesen Blog dem Erstentwickler Christian, Markus, dem TYPO3-Kernteam und der Community widmen, die ein so hervorragendes TYPO3 Scheduler-Feature entwickelt und gepflegt haben. #T3Kudos
Seit TYPO3 v9 ist der TYPO3 Scheduler Task noch potenter, da TYPO3 mit dem Symfony-Framework zusammenarbeitet und eine fantastische Symfony-Konsolenbefehlskomponente verwendet. Das ist eines der großartigen Beispiele, was erreicht werden kann, wenn sich zwei riesige Open Source Frameworks treffen und zusammenarbeiten.
Was ist der TYPO3 Scheduler?
Wenn Sie ein Neuling sind, ist TYPO3 Scheduler eine der zentralen TYPO3-Erweiterungen, um wiederkehrende Aufgaben auszuführen und durchzuführen. Hier ist das Beispiel für einige der Aufgaben;
- Senden Sie einen Newsletter an Ihre Kunden.
- Unnötige Bilder und Assets löschen
- Caching und Garbage Collection entfernen
- Regelmäßige Optimierung der MySQL-Datenbank
- Altlasten weiter entfernen
- usw.,
Was ist die Geschichte von TYPO3?
Der Scheduler stammt von der Erweiterung Gabriel ab, die ursprünglich von Christian Jul Jensen entwickelt und von Markus Friedrich weiterentwickelt wurde.
Wie installiert man den TYPO3 Scheduler?
Standardmäßig ist die TYPO3 Scheduler Extension in Ihrem eingebauten TYPO3-Kern verfügbar. Manchmal kann es vorkommen, dass Ihr Administrator die TYPO3-Scheduler-Erweiterung nicht einbindet, dann können Sie sie einfach installieren und unten konfigurieren.
Composer TYPO3 Scheduler Installation
composer require typo3/cms-scheduler
Ohne-Composer TYPO3 Scheduler Installation
Für Ihre Standard-TYPO3-Installation sollten Sie eine eingebaute Scheduler-Erweiterung haben; aktivieren Sie sie einfach ;)
Aktivieren Sie die TYPO3 Scheduler Extension
Gehen Sie zu Admin Tools > Extensions> Aktivieren Sie die Erweiterung "Scheduler".
Konfiguration des TYPO3 Schedulers
Gehen Sie zu Admin Tools > Einstellungen >Extensions Konfiguration > scheduler
Wie prüft man den TYPO3 Scheduler? (Vorbereitungen)
Bevor wir mit dem TYPO3-Scheduler arbeiten, wollen wir erst einmal testen, ob mit unserem TYPO3-Scheduler-Dienst alles gut funktioniert.
Gehen Sie zu System > Scheduler > Wählen Sie "Setup Check". Wenn Sie einen Fehler gefunden haben, wenden Sie sich an Ihren Systemadministrator, um ihn zu korrigieren.
Anleitung zum Administrator für TYPO3-Scheduler-Task
Als TYPO3-Administrator sollten Sie wissen, wie man TYPO3-Scheduler, Aufgaben, Ausführung, TYPO3-Cronjob usw. verwaltet. Lassen Sie uns einen kurzen Blick auf den TYPO3-Scheduler-Task "Testlauf" werfen.
Erstellen eines TYPO3-Scheduler-Tasks
Schritt 1. Gehen Sie zu System > Scheduler > Wählen Sie "Information" aus der Dropdown-Liste.
Schritt 2. Klicken Sie auf die Schaltfläche "+" der "Scheduler-Testaufgabe".
Schritt 3. Füllen Sie alle notwendigen Felder wie Typ, Häufigkeit, E-Mail, etc. aus.
TYPO3 Scheduler Task manuell ausführen/starten
Schritt 1. Gehen Sie zu System > Scheduler > Scheduled Tasks
Schritt 3. Der TYPO3 Scheduler sollte erfolgreich laufen. Jetzt ist es an der Zeit, die E-Mail zu prüfen ;)
Juhu! Wir haben die E-Mail mit der Testaufgabe des TYPO3-Schedulers erhalten, und das bedeutet, dass unser TYPO3-Scheduler gut funktioniert.
TYPO3 Scheduler Task manuell stoppen
Schritt 1. Gehen Sie zu System > Scheduler > Scheduled Tasks
Schritt 2. Klicken Sie auf die Schaltfläche "Scheduler stoppen".
Organisieren der TYPO3 Scheduler Aufgaben Gruppe
Wenn Sie viele TYPO3-Scheduler-Aufgaben haben, hat TYPO3 eine innovative Funktion, um alles in verschiedenen Gruppen zu organisieren.
Es ist mühelos; Sie müssen nur "Task Group" zu jeder TYPO3 Scheduler-Aufgabe hinzufügen und zuweisen.
TYPO3 Scheduler für Server vorbereiten
Nun, Sie haben die Backend-Verwaltung des TYPO3-Schedulers, aber das endet nicht mit dem TYPO3-Scheduler ;) Viele Leute denken, dass TYPO3 den wiederkehrenden nächsten Cron übernimmt, aber das ist nicht wahr.
Grundlagen TYPO3 Scheduler Befehl auf CLI
Sie müssen TYPO3 Cronjob auf Ihrem Server konfigurieren, um die wiederkehrende TYPO3 Scheduler-Aufgabe auszuführen. Zunächst lernen wir die Grundlagen, wie TYPO3 auf der CLI (Command Line Interface) läuft.
// Composer based TYPO3 Setup
php vendor/bin/typo3 scheduler:run
// Without Composer Setup
php typo3/sysext/core/bin/typo3 scheduler:run
// Some server don’t directly run PHP, you should find out PHP CLI-path
which php
/usr/local/bin/php typo3/sysext/core/bin/typo3 scheduler:run
Hilfe für TYPO3 Scheduler Befehl erhalten
// Run this command to Get help of TYPO3 scheduler
vendor/bin/typo3 scheduler:run --help
Einzelne Aufgabe im TYPO3 Scheduler ausführen
// Run this command to run single task
vendor/bin/typo3 scheduler:run --task=1
Mehrere Tasks im TYPO3 Scheduler ausführen
// Run this command to run single task
vendor/bin/typo3 scheduler:run --task=1 --task=2
Erzwingen Sie die Ausführung der Aufgabe im TYPO3 Scheduler
// Forcefully Run this command to run single task
vendor/bin/typo3 scheduler:run --task=1 -f
Debug-Task im TYPO3 Scheduler (empfehlen)
// Forcefully Run this command to run single task
vendor/bin/typo3 scheduler:run --task=1 -v
Wie setzt man einen Cronjob für den TYPO3 Scheduler?
Ich bin sicher, Sie kennen Server wie Apache/Nginx crontab/cronjob. Wir müssen den TYPO3-Scheduler mit einem solchen Cronjob für unseren wiederkehrenden TYPO3-Scheduler-Task verbinden.
// On Unix and Mac OS X
crontab -e
*/15 * * * * /usr/local/bin/php /www/typo3/sysext/core/bin/typo3 scheduler:run
// Another way - make sure to add “www” user
/etc/crontab and /etc/cron.d/\*
*/15 * * * * www /usr/local/bin/php /www/typo3/sysext/core/bin/typo3 scheduler:run
// On Windows
schtasks /create /sc minute /mo 15 /tn "T3scheduler" /tr "c:\winstaller\php\php.exe c:\winstaller\htdocs\quickstart\typo3\sysext\core\bin\typo3 scheduler:run"
Kennen Sie das bekannte Problem?
Derzeit besteht das Hauptproblem darin, dass ein laufender Task nicht beendet werden kann, weil keine Beziehung zu dem (cron) Prozess besteht, der den Scheduler ausführt. Die Prozess-PID könnte abgerufen werden, aber das funktioniert möglicherweise nicht auf allen Plattformen. Und kann der Prozess danach noch beendet werden? Wie auch immer, es ist möglicherweise nicht sicher, das zu tun.
Must-Have Scheduler für optimierte TYPO3-Installation
Für eine optimierte TYPO3-Installation empfehle ich Ihnen, unten den Standard-TYPO3-Scheduler zu konfigurieren, der Ihre TYPO3-Instanz ordentlich und sauber hält.
- Caching-Framework Garbage Collection (Scheduler)
- Fileadmin Garbage Collection (Zeitplaner)
- Tabelle Garbage Collection (Scheduler - sys_log)
- Tabelle Garbage Collection (Scheduler - sys_history)
TYPO3 Scheduler mit Symfony Konsolenbefehlen
TYPO3 verwendet die Symfony-Befehls-API zum Schreiben von CLI-Befehlen (Command Line Interface). Diese Befehle können auch über den TYPO3-Scheduler ausgeführt werden.
Sie suchen eine Schritt-für-Schritt-Anleitung, um einen eigenen TYPO3 Scheduler Task und Befehl zu erstellen? Hier geht's los?
Schritt 1. Registrieren der Symfony-Konsolenbefehle
Create typo3conf/ext/yourextension/Configuration/Services.yaml
services:
_defaults:
autowire: true
autoconfigure: true
public: false
NITSAN\NsBasetheme\:
resource: "../Classes/*"
Vendor\Extension\Command\TestScheduler:
tags:
- name: "console.command"
command: "myext:test"
description: "An example description for a command"
# not required, defaults to false
hidden: false
Schritt 2. Scheduler Command Controller-Klasse erstellen
Create typo3conf/exte/yourextension/Classes/Command/TestScheduler.php
<?php
namespace Vendor\Extension\Command;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Style\SymfonyStyle;
class TestScheduler extends Command
{
/**
* Configure the command by defining the name, options and arguments
*/
protected function configure()
{
$this
->setDescription('Test Scheduler')
->setHelp('Description of the test scheduler')
->addArgument('id', InputArgument::OPTIONAL, 'id');
}
/**
* Executes the command for showing sys_log entries
*
* @param InputInterface $input
* @param OutputInterface $output
* @return int error code
*/
protected function execute(InputInterface $input, OutputInterface $output)
{
$io = new SymfonyStyle($input, $output);
$io->writeln('Initiated and Processing...');
$id = $input->getArgument('id');
if(!$id) {
$io->error('No id provided');
}
else {
$io->success('Successfully run id='.$id);
}
}
}
Schritt 3. Erstellen eines TYPO3-Scheduler-Tasks
Go to System > Scheduler > Add New Task > Choose Class = Execute console commands
Schritt 4. Machen wir eine Testfahrt mit CLI-Befehlen
// For composer-based TYPO3 instance, I suggest to dump-autoload
composer dump-autoload
// Syntax
vendor/bin/typo3 myext:test [id]
// Without passing argument
vendor/bin/typo3 myext:test
// Without passing argument
vendor/bin/typo3 myext:test id=1
Cron auf TYPO3 Scheduler einstellen
// Let’s schedule with Crontab
crontab -e
*/15 * * * * /usr/local/bin/php /www/typo3/sysext/core/bin/typo3 myext:test
Schließung!
Danke, dass Sie meinen Artikel gelesen haben. Ich hoffe, es hat Ihnen gefallen und Sie haben viel über den TYPO3 Scheduler gelernt.
Als TYPO3-Administrator lernen Sie immer wieder die Verwaltung von Scheduler-Tasks, die Einrichtung von Cronjobs usw. Wenn Sie einen eigenen Scheduler für Ihre speziellen Bedürfnisse erstellen möchten, kann der TYPO3-Entwickler Ihnen helfen, einen TYPO3-Scheduler-Task mit Symfony-Konsolenbefehlen zu erstellen.
Haben Sie Schwierigkeiten, den TYPO3 Scheduler einzurichten? Haben Sie irgendwelche Fragen? Schreiben Sie einfach in das Kommentarfeld.
Viel Spaß beim TYPO3 Scheduling!
Post a Comment
- To the t3planet.com webmaster, Your posts are always well structured and easy to follow.
- Yeah! TYPO3 Scheduler is one of the best features to manage Cron jobs. Excellent article with excellent explanation.
Dhyana Chauhan
Tech Expert & Customer ManagerDhyana Chauhan is the customer support manager at T3Planet, having vast experience as an technology lead who loves exploring everything that’s in trend, especially TYPO3. Being a TYPO3 fanatic, in her free time, she loves…
More From Author