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
345
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
Neu Stapelverarbeitung Etikettendruck Arbeitsabläufe in JTL-Wawi 5
Neu Verdandliste Pro Paket das Gewicht mit ausgeben Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 1
Neu Paternoster Umlaufregal mit JTL Wawi möglich? JTL-WMS / JTL-Packtisch+ - Ideen, Lob und Kritik 0
Neu Aufträge mit nicht verfügbaren Artikeln automatisch zurückhalten User helfen Usern - Fragen zu JTL-Wawi 2
Neu WooCommerce Connector Problem mit nachträglich abgebrochenen Bestellungen Onlineshop-Anbindung 0
Neu Überverkäufe mit Kindartikeln - wie richtig einstellen ? User helfen Usern - Fragen zu JTL-Wawi 22
Neu Problem mit Variationen-Artikeln JTL-Shop - Fehler und Bugs 2
Neu WMS - Nachträglicher Labeldruck mit Adressänderung Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 1
Neu Connector Verhalten mit Tracking Nummern und Versandbestätigungen Shopify-Connector 0
Neu OTTO-Marketplace Versand NICHT mit DHL möglich? Smalltalk 4
Neu Frage an die (Hobby-) Controller: B2C Einzelhandel mit 6% Marketingbudget - das ist normal? Business Jungle 7
Neu Probeme WaWi mit POS verbinden - failed to connect - server IP 127.0.0.1 Einrichtung / Updates von JTL-POS 0
Neu Immense Probleme mit dem Aufschalten neuer Produkte Amazon-Anbindung - Fehler und Bugs 0
Neu Aufträge mit falsche Steuerart angelegt User helfen Usern - Fragen zu JTL-Wawi 0
Neu Wawi Auftrag in JTL POS öffnen (problem mit Kartenzahlung) Allgemeine Fragen zu JTL-POS 0
Neu Wie erstelle ich Bundles mit JTL Wawi? User helfen Usern 0
Auftrag Inlandskunde mit USt-Id - wie erfassen JTL-Wawi 1.7 6
Konfigurationsartikel mit 0 € vs. Preise der einzelnen Komponenten mit 0 € Einrichtung JTL-Shop5 1
Neu Zahlungsart Überweisung mit Skonto Allgemeine Fragen zu JTL-Shop 1
Neu Übersicht Verkauf mit Artikelmenge und durchschnittlichem VK netto Eigene Übersichten in der JTL-Wawi 6
Neu Artikel mit negativem Preis (Gutschein) eingeben kompliziert...geht das einfacher? Allgemeine Fragen zu JTL-POS 3
Neu Shop 5.4 - Error 500 mit aktiviertem JTL Debug JTL-Shop - Fehler und Bugs 8
Neu Preisdarstellung mit der niedrigsten Staffelung Allgemeine Fragen zu JTL-Shop 5
Neu Plugin mit transparentem Hintergrund (Auswahlassistent) Plugins für JTL-Shop 1
Neu Umgang mit Chargen bei mehreren Bestellungen Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Neu SQL DB läuft mit Fehler voll und crasht Server JTL-Shop - Fehler und Bugs 1
Neu Fehler mit Zugriff auf die Datenbank (Exec Direct). Installation von JTL-Wawi 4
Neu In Filiale umbuchen mit Packungsgröße und dort mit JTL-POS einzeln "verkaufen" User helfen Usern - Fragen zu JTL-Wawi 3
Probleme mit Versandbenachrichtigung versenden JTL-Wawi 1.9 0
Neu Probleme mit PayPal-Plugin: Bestellungen "pending" & doppelte Zahlungen nach Direktzahlung Plugins für JTL-Shop 0
Neu Fehler 500 mit NOVAchild 5.3.1 in JTL-Shop 5.33 Templates für JTL-Shop 2
Neu Neueste Version Paypal Checkout: Rechnungskauf mit Ratepay und Paypal-Kreditkarte sind nicht verfügbar. Plugins für JTL-Shop 21
Neu SW 5.7.18: welcher Connector mit welcher Wawi? Shopware-Connector 1
Neu JTL FEHLER! - JTL sendet falschen ISO-Code - Nordirland Versand mit DHL nicht mehr möglich JTL-ShippingLabels - Fehler und Bugs 5
Probleme beim Versand mit DHL JTL-Wawi 1.9 0
Neu Workflow Auftragssplit bei DHL Export Sendungen mit mehreren Paketen User helfen Usern - Fragen zu JTL-Wawi 0
Neu Artikelexport mit Filter Hersteller, Überverkauf, letzte Änderung JTL Ameise - Eigene Exporte 2
Neu Alternative zu Sendcloud mit JTL Integration (Express Versand International) Arbeitsabläufe in JTL-Wawi 0
Neu Lieferschein mit Versandlabel Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Neu Amazon Lister 2.0 Fehlercode: SLR402 Bild "1.jpg" für das Angebot mit SKU "xxxxx" auf Channel "AMAZONDEJTL" wurde nicht gefunden Amazon-Lister - Ideen, Lob und Kritik 0
Neu noindex bei URLs mit btgsterne Allgemeine Fragen zu JTL-Shop 0
Artikelanlage mit Staffelpreisen JTL-Wawi 1.9 3
Neu Artikel mit Zustand beschädigt wird nicht als eigenständiger Artikel in der WaWi angezeigt User helfen Usern - Fragen zu JTL-Wawi 1
Neu Fehlermeldung: Fehler bei der Kommunikation mit dem eA-Server eBay-Anbindung - Fehler und Bugs 3
Neu Preisdarstellung: keine „ab“-Preise mehr mit Staffelpreisen für Produkte ohne Variationen (JTL Shop 5.3.3) Allgemeine Fragen zu JTL-Shop 1
Neu Liste verkaufter Artikel mit VK Fibu-Konto aus der Artikelkategorie User helfen Usern - Fragen zu JTL-Wawi 4
Neu Marketing Coupons mit Betrag + versandkostenfrei erstellen Allgemeine Fragen zu JTL-Shop 4
Neu Artikeletikett für Kinderartikel drucken mit GTIN Barcode funktioniert nicht User helfen Usern - Fragen zu JTL-Wawi 12
Neu Wie kann ich Artikel mit Lagerbestand 0 beim Import inaktiv setzen) JTL-Ameise - Ideen, Lob und Kritik 17
Neu DHL-Paket International verzollt mit Postal DDP Services JTL-ShippingLabels - Ideen, Lob und Kritik 0

Ähnliche Themen