Neu Stapelverarbeitung mit Cronjob

fhinok

Aktives Mitglied
9. September 2021
5
0
Hallo zusammen

Ich versuche gerade, mit einem Cronjob einen API-Endpunkt eines Fremdsystems mit allen Artikeln (ca. 30'000) des Shops zu beliefern.
Laut der Dokumentation sollte der Cronjob solange zyklisch aufgerufen werden, bis setFinished(true) gesetzt wurde. (Link zum Guide)
Der Code wird jedoch nur einmal gestartet und die Ausführung des Cronjobs im Anschluss beendet, selbst wenn ich mit setFinished(false) eine Endlosausführung provoziere.

Wenn ich in die Methode get_collection() einen Loop einbaue, erhalte ich, eine Execution Timeout und der Cronjob wird nie als beendet markiert, da die Datenmenge zu gross ist.

Die Cronausführung stosse ich mit https://shop.local/includes/cron_inc.php an. Für die Pluginentwicklung nutze ich aktuell die Version 5.3.0-rc.2.
Der entsprechende Code sieht so aus:

PHP:
class MyCron extends Job
{ 
    public function start(QueueEntry $queueEntry): JobInterface
    {
        parent::start($queueEntry);
        $res = $this->get_collection(ProductModel::class, 'product');
        $this->setFinished($res);
        return $this;
    }
    
    public function get_collection(string $modelClass, string $index): bool
    {
        /** Hole x Artikel aus der Datenbank */
        /** Wenn Cursor noch nicht am Ende: return false */
        return false;
    }
}

Leider stimmt der Inhalt Demo-Plugins nicht mit der Dokumentation überein, das hilft mir auch nicht weiter.

Deshalb meine Frage: Interpretiere ich da die Dokumentation falsch oder übersehe ich was bei der Implementierung?
 

FMoche

Moderator
Mitarbeiter
15. Dezember 2014
1.369
347
Halle (Saale)
Inwiefern stimmt das Demo-Plugin nicht mit der Doku überein?
Das setFinished() bestimmt nur, ob beim nächsten Start des Crons der Job erneut gestartet wird oder nicht - nicht wie lange der Job läuft.

Wenn du also jedes mal setFinished(false) setzt, wird der Job beim nächsten Aufruf der includes/cron_inc.php erneut aus der Datenbank geladen und weitergeführt - solange bis du da TRUE setzt.
 

fhinok

Aktives Mitglied
9. September 2021
5
0
Inwiefern stimmt das Demo-Plugin nicht mit der Doku überein?
Sorry, ich hatte da beim Schreiben irgendwas Falsches im Kopf und nicht mehr kontrolliert: Das Registrieren des Jobs wird im Demoplugin direkt mit einem Eintrag in die Datenbank realisiert, in der Doku wird aber der Weg über den Controller beschrieben.
Macht ja aber eigentlich keinen grossen Unterschied.

Das setFinished() bestimmt nur, ob beim nächsten Start des Crons der Job erneut gestartet wird oder nicht - nicht wie lange der Job läuft.

Wenn du also jedes mal setFinished(false) setzt, wird der Job beim nächsten Aufruf der includes/cron_inc.php erneut aus der Datenbank geladen und weitergeführt - solange bis du da TRUE setzt.
Alles klar, dann habe ich da etwas falsch interpretiert. Dann werde ich das auf eine andere Art umsetzen.

Danke für die Klärung.
 
Ähnliche Themen
Titel Forum Antworten Datum
Artikel Z besteht aus den Positionen A, B und C mit unterschiedlichen Steuersätzen. Wie im Angebot, Auftrag, Rechnung richtig dargestellen ? JTL-Wawi 1.11 4
Neu Erfahrungen mit automatischen Etikettiersystemen & JTL-Integration Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Erfahrungen mit JTL-Wawi 1.10.15.0 im Produktivbetrieb? JTL-Wawi 1.10 3
Neu Lieferschein entweder mit Stücklistenkomponente oder aber mit normalem Artikel ausgeben. Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Neu Rabatt auf Zahlungsart wird bei Lieferung ins EU-Ausland mit falscher MwSt berechnet? Betrieb / Pflege von JTL-Shop 0
Neu Bedarfssprognose - Einmalige Bestellung mit großer Stückzahl nicht zu berücksichtigen User helfen Usern - Fragen zu JTL-Wawi 0
Defekte Retouren mit Grund des Defektes erfassen JTL-Wawi 1.11 1
Neu Für jeden Artikel Bild1 löschen mit der Ameise JTL-Ameise - Ideen, Lob und Kritik 3
Neu Sitemap per cronjob und nicht mit Wawi Abgleich Allgemeine Fragen zu JTL-Shop 3
Neu Mit Ameise nur einen Artikel & die dazu gehörenden Varianten exportieren - wie? Schnittstellen Import / Export 3
Neu JTL-Wawi 1.11.5: Sequenzieller Kundenexport mit Workflow und SQL-Queue Schnittstellen Import / Export 2
Neu Rechnung mit Lastschift Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 5
Neu JTL POS mit Stadtgutscheinen Allgemeine Fragen zu JTL-POS 0
Neu eBay Angebotsimport : Fehler bei der Kommunikation mit dem eA-Server eBay-Anbindung - Fehler und Bugs 0
S/MIME mit veraltetem Standard? JTL-Wawi 1.11 2
Neu JTL Wawi auf Windows Server 2025 mit SQL 2025? Installation von JTL-Wawi 12
Seit Update auf 1.11.4 Workflow für Kartonauswahl gibt error JTL Das Objekt mit Nullwert muss einen Wert haben. BrowsePk: 152325 WorkflowAktionId: 155 JTL-Wawi 1.11 1
Neu Ich möchte konfigurieren, dass Artikel mit einem Lagerbestand von 0 nicht mehr zu einer Bestellung hinzugefügt werden dürfen Eigene Übersichten in der JTL-Wawi 1
Neu "Eine Zeile mit doppeltem Schlüssel" im Assistent zur Einrichtung Installation von JTL-Wawi 1
Neu Konfigurator-Produkt wird mit 0 € in den Warenkorb gelegt JTL-Shop - Fehler und Bugs 2
Neu Probleme mit dem erstellen eines Profils in der Datenbankverwaltung JTL-Wawi - Fehler und Bugs 1
Neu Neues E-Commerce Business mit JTL Wawi - Jtl Shop - Lexware Office (online) - Fragen Starten mit JTL: Projektabwicklung & Migration 2
Neu Kein Abgleich mit Amazon mehr möglich - IP Sperre? Amazon-Anbindung - Fehler und Bugs 2
Neu Eine Amazon-Abrechnung wurde mit Verspätung generiert und fehlt jetzt in WAWI Amazon-Anbindung - Fehler und Bugs 3
Neu Salepix Techniktemplate mit Downloadfehler Templates für JTL-Shop 2
Bestand anderer Kinderartikel wird in Artikelstammdaten mit angezeigt – wie kann man das deaktivieren? JTL-Wawi 1.11 2
Monatsabschluss Amazon FBA UK / CH mit JTL2Datev WaWi 1.10 bei IDU Nutzung und Zwangs VCS für GB / Schweiz JTL-Wawi 1.10 0
Neu Habt ihr auch Probleme mit dem Google Merchant Center? Allgemeine Fragen zu JTL-Shop 6
Neu Mediendateien nicht mit Shopware synchronisiert Shopware-Connector 0
Neu Lieferantenbestellung mit Stückliste User helfen Usern - Fragen zu JTL-Wawi 3
Neu Zahlungsziel mit unterschiedlichen Valutas erstellen User helfen Usern - Fragen zu JTL-Wawi 6
In Diskussion Pos mit 1.11.4 nicht kompatibel Einrichtung / Updates von JTL-POS 10
Neu JTL-MeetUp mit eBay in Berlin Messen, Stammtische und interessante Events 0
Neu Barcodescanner - Artikel mit # wird nicht übergeben Allgemeine Fragen zu JTL-POS 2
Neu Staffelpreise wird mit Sternchen angezeigt - wie ändere ich das Allgemeine Fragen zu JTL-Shop 0
Neu 0,1% an der Kasse erstellte Kunden nicht synchronisiert mit JTL Wawi Allgemeine Fragen zu JTL-POS 0
Neu Probleme mit WMS-Inventur JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 0
Neu GPSR Produktsicherheitsblatt mit Amazon Lister übergeben? Amazon-Lister - Fehler und Bugs 5
Neu Varianten Artikel erstellen mit Lister 2.0 nur für Amazon Amazon-Lister - Ideen, Lob und Kritik 0
Lagerbestände mit der Ameise korrigieren JTL-Wawi 1.6 3
Probleme mit dem Ebay-Abgleich JTL-Wawi 1.11 1
Aktuelle Erfahrungen mit 1.11 JTL-Wawi 1.11 2
Neu Zufällige Preisanpassungen beim Abgleich mit Woocommerce User helfen Usern - Fragen zu JTL-Wawi 9
Amazon-ASIN mit mehreren SKU für Chargenverfolgung JTL-Wawi 1.10 0
Neu Kundenkonto mit mehreren Shop-eMail-Adressen User helfen Usern - Fragen zu JTL-Wawi 0
Neu Ist es korrekt, dass Belegdaten von Amazon (VCS) mit einer etwa 7-tägigen Verzögerung in WAWI landen? Amazon-Anbindung - Fehler und Bugs 8
Neu Ärger mit CountX: Verzögerung bei der Bearbeitung von VCS-Daten in WAWI führt zu unvollständigen Steuerdaten User helfen Usern - Fragen zu JTL-Wawi 0
Neu Rechnung als pdf. speichern mit Rechnungsnummer und Kundennummer im Namen klappt nicht User helfen Usern - Fragen zu JTL-Wawi 4
Neu Was passiert beim Shop Update mit den Mailvorlagen? Installation / Updates von JTL-Shop 2
Neu Platzhalter für GPSR werden mit angezeigt PrestaShop-Connector 1

Ähnliche Themen