Inhaltsverzeichnis

    Aufgabenplaner für Exporte einrichten

    Hinweis: Diese Seite bezieht sich auf JTL-Shop 5. Falls Sie noch JTL-Shop 4 verwenden, finden Sie die Dokumentation unter JTL-Shop 4.

    Ihre Aufgabe/Ausgangslage

    Sie haben einen oder mehrere Exporte, beispielsweise für eine Preissuchmaschine, konfiguriert und möchten regelmäßige Exporte durchführen lassen.

    Exporte automatisieren

    1. Öffnen Sie den Aufgabenplaner im Backend von JTL-Shop über das Menü Administration > Export > Exporte-Manager.
    1. Klicken Sie auf die Schaltfläche Neue Aufgabe erstellen. Es öffnet sich die Seite Exportformate.
    2. Wählen Sie über das Dropdown-Menü Exportformate das Format aus, das erstellt werden soll.
    3. Legen Sie anschließend unter Startdatum den Zeitpunkt fest, an dem der erste Export stattfinden soll und unter Alle X Stunden, wie oft der Export wiederholt werden soll. Das Startdatum muss das folgende Format haben: dd.mm.yyyy hh.mm.
    1. Klicken Sie auf Neue Aufgabe erstellen. Sie gelangen zurück zur Seite Aufgabenplaner Exporte. Dort wird Ihre neu erstellte Planung aufgelistet.

    Exporte anstoßen

    Automatisch

    Der Aufgabenplaner kann auch automatisch ausgeführt werden. Beim NOVA-Template ist dies per Cronjob möglich; beim EVO-Template steht zudem eine Blindgrafik zur Verfügung.

    • Cronjob: Folgen Sie bitte der Anleitung „Export-Manager per Cronjob anstoßen“ weiter unten.
    • Blindgrafik (nur EVO): Der Aufgabenplaner wird über eine sogenannte Blindgrafik, also eine Grafik, die von Ihren Endkunden nicht gesehen werden kann, angestoßen. Jedes Mal, wenn die Blindgrafik geladen wird, prüft der Aufgabenplaner, ob der erforderliche Zeitraum bis zum nächsten Export bereits überschritten wurde und führt ggf. den Export durch. Aktivieren Sie im Template die Option Aufgabenplaner-Blindgrafik aktivieren?, siehe EVO-Template.

    Manuell

    Sie können den Export auch manuell anstoßen, unabhängig davon, ob das vorgegebene Zeitfenster bereits verstrichen ist.

    1. Wechseln Sie dazu im Backend von JTL-Shop über das Menü Administration > Export > Exporte-Manager wieder auf die Seite Aufgabenplaner für Exporte.
    2. Klicken Sie auf die Schaltfläche Cron manuell anstoßen. Der Export wird nun durchgeführt und das Intervall wieder zurückgesetzt.
    Hinweis: In unserer JTL-Shop-FAQ finden Sie Hinweise über beispielsweise unregelmäßige Abarbeitung.

    Häufige Fragen

    Wie und wann werden Aufgaben im Aufgabenplaner abgearbeitet?

    Die im Backend unter Administration > Export > Exporte-Manager hinterlegten Aufgaben werden folgendermaßen im JTL-Shop abgearbeitet:

    Der Onlineshop versucht standardmäßig, bei jedem zehnten Seitenaufruf den Aufgabenplaner zu starten. Dazu startet der Server einen Server-to-Server-Request (curl), bei dem die URL <Shop-URL>/includes/cron_inc.php aufgerufen wird. Dies startet den Aufgabenplaner. Dieser arbeitet dann einen Teil der Aufgaben in der Warteschlange nach und nach ab. Beim nächsten Aufruf des Aufgabenplaners wird der nächste Teil der Aufgaben abgearbeitet. Dank dieser Technik sind bei einem Onlineshop mit regelmäßigen Besuchern keine weiteren Cronjobs notwendig. Die Aufgaben werden nacheinander durch Seitenaufrufe angestoßen.
    Der Aufruf des Server-to-Server-Requests bzw. das Anstoßen des Aufgabenplaners hat dabei keine Auswirkung auf die Ladezeit der Seite.

    Über Aufruf der URL <Shop-URL>/includes/cron_inc.php kann die Abarbeitung der Aufgaben manuell angestoßen werden. Falls auf der Seite kein Inhalt angezeigt wird, befinden sich aktuell entweder keine Aufgaben in der Warteschlange oder es wird gerade ein Aufgabenprozess abgearbeitet.

    Wir empfehlen jedoch dringend, einen richtigen Cronjob zu installieren. Dieser ist nicht von regelmäßigen Seitenaufrufen abhängig, sondern ruft selbst in festen Intervallen <shoproot>/includes/cron_inc.php auf.

    Warum werden meine geplanten Aufgaben nicht oder nur unregelmäßig abgearbeitet?

    Die einfachste Erklärung ist, dass die Funktion nicht aktiviert wurde. Um zu prüfen, ob die Funktion derzeit aktiv ist, navigieren Sie im Backend von JTL-Shop zu Administration > System > Cron. Wechseln Sie zur Registerkarte Einstellungen und kontrollieren Sie, ob Pseudo-Cron-Methode gegebenenfalls auf deaktiviert gestellt wurde. Aktivieren Sie in diesem Fall die Einstellung. Sollte das Problem damit nicht behoben sein, lesen Sie bitte die nächsten Abschnitte.

    Beim Aufgabenplaner handelt es sich nicht um einen Cronjob. Das heißt, dass die Aufgaben nicht nach einem bestimmten Intervall „Alle X Stunden“ abgerufen, sondern durch die Seitenaufrufe in Relation mit der Aufrufzeit gestartet werden. Das heißt, wenn eine Seite aufgerufen wird und die Aufrufzeit (per Timestamp) durch 10 ohne Rest (Modulo 10) teilbar ist, wird die Aufgabe gestartet. Im Durchschnitt erfolgt der Aufgabenstart ca. alle 10 Seitenaufrufe und unter optimalen Bedingungen auch ungefähr in dem angegebenen „Alle X Stunden“-Intervall. Durch geringe Besucherzahlen kann es dazu kommen, dass sich die Aufgaben verzögern oder bei sehr geringen Besucherzahlen sogar zeitweise gar nicht ausgeführt werden.

    Auch die Newsletter und die Exporte werden automatisch über den Aufgabenplaner ausgeführt. Bei einer geringen Besucherzahl Ihres JTL-Shops verzögert sich der Aufgabenstart, der dazu führt, dass die Newsletter oder die Exporte versendet werden. Dies bedeutet auch, dass die Versendung der Newsletter oder der Exporte sich zeitlich verzögern oder bei einer sehr geringen Besucherzahl auch gar nicht erst versendet werden.

    Aufgabenplaner per Cronjob anstoßen

    Wenn Sie die Möglichkeit haben, eigene Cronjobs zu erstellen (entweder Cronjobs auf eigenem Server oder durch externe Cron-Aufrufe), dann können Sie wie folgt vorgehen:

    Sie können das PHP-Script direkt per Cron-Aufruf anstoßen.

    Achtung: Stellen Sie auf keinen Fall höhere Werte als die folgenden Standardwerte ein: EXPORTFORMAT_LIMIT_M=1000; Jobqueue = 5. Sonst können Exportprobleme auftreten. Erst ab JTL-Shop 5 werden abgestürzte Aufgabenplanungen nach 1-2 Stunden automatisch zurückgesetzt und weiter exportiert.

    Wenn der Cron-Dienst auf demselben Server wie der Shop läuft, dann wird das Script wie folgt aufgerufen (Pfad zum Onlineshop anpassen!):

    php /pfadZumShop/includes/cron_inc.php
    Anwendungsbeispiel: Schreiben Sie Folgendes in die Datei includes/config.JTL-Shop.ini.php:
    define('JOBQUEUE_LIMIT_M_EXPORTE', 250);
    define('JOBQUEUE_LIMIT_JOBS', 3);

    JOBQUEUE_LIMIT_M_EXPORTE beschreibt die Anzahl von Artikeln, die pro Exportformat und Cronjob-Aufruf exportiert werden. Der Standardwert liegt bei 500 und sollte nur nach unten angepasst werden.

    Bei JOBQUEUE_LIMIT_JOBS handelt es sich um die Anzahl an Cronjobs, die pro Aufruf nacheinander gestartet werden.

    Bei externen Cron-Diensten (wie z. B. www.cronjob.de) reicht es, das php-Skript per URL-Aufruf zu starten:
    Beispiel:

    http://www.meinshop.de/includes/cron_inc.php

    Standardmäßig werden bei Exportformaten 500 Artikel pro Aufruf abgearbeitet. Das bedeutet, wenn Sie 800 Artikel und zwei Exportformate im Aufgabenplaner eingetragen haben, muss der Cronjob zweimal gestartet werden, damit alle Aufgaben abgearbeitet werden können. Je nach Serverkapazität sollten Sie entsprechend viel Zeit zwischen den Aufrufen einplanen (ca. 2 Minuten). Sie sollten für den Aufruf der Cronjobs einen Zeitraum wählen, in dem möglichst wenige Shop-Besucher online sind.

    Best Practices Aufgabenplaner und Cronjobs

    Für eine reibungslose Abarbeitung von Jobs sollten die folgenden Dinge beachtet werden:

    • Sicherstellen, dass ein Exportjob zügig abgearbeitet werden kann. Je nach Artikelmenge muss dazu der Aufgabenplaner mehrfach hintereinander in einem kurzen Intervall (z. B. minütlich) angestoßen werden (siehe Beispiel oben).
    • Sicherstellen, dass nicht zu viele Exportjobs parallel laufen. Die Startzeiten für Exportjobs sollten so gewählt werden, dass die Jobs problemlos hintereinander (und nicht parallel) fertiggestellt werden sollen.
    • Besucher-Peak-Zeiten und Exportjob-Zeiten trennen: Größere Jobs sollten nächtlich laufen, damit tagsüber, wenn die meisten Besucher im Onlineshop unterwegs sind, die volle Serverpower für den normalen Betrieb des Onlineshops zur Verfügung steht.