Neu Stapelverarbeitung mit Cronjob

fhinok

Aktives Mitglied
9. September 2021
2
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.362
340
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
2
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 Artikel mit PReisabfrage Negativer Betrag für Lotto-Auszahlung Allgemeine Fragen zu JTL-POS 0
Neu Googlesuche Treffer mit falschen Angaben. Allgemeine Fragen zu JTL-Shop 5
Barcodescanner Fehler mit ein "U" am Ende JTL-Wawi 1.8 0
Neu mit FBM für Ausland User helfen Usern - Fragen zu JTL-Wawi 2
Neu Probleme mit Artikel Abgleich Shopware-Connector 2
Ausgabe des Warenbestandes mit Fulfillment Lager JTL-Wawi 1.8 0
Neu Variations Artikel mit Kindern automatisch Stücklisten zuweisen Arbeitsabläufe in JTL-Wawi 4
Neu Artikel von JTL mit Ebay verbinden in Easy Action Einrichtung und Installation von JTL-eazyAuction 2
Neu Erreichbarkeit von Seiten mit 0 Bestand in 5.3.1 JTL-Shop - Fehler und Bugs 2
Kaufland Umzug Unicorn nach SCX mit eigenen Produkten - HowTo? kaufland.de - Anbindung (SCX) 1
Neu Export Gesamtpreis für Artikel mit Mindestabnahme Allgemeine Fragen zu JTL-Shop 0
Neu Lieferantenbestellung mit Bild User helfen Usern - Fragen zu JTL-Wawi 2
Neu Fehlermeldung "Ein Element mit dem gleichen Schlüssel wurde bereits hinzugefügt" JTL-Wawi - Fehler und Bugs 2
Einlagerungsliste mit Lagerposition bzw. Feld "Kommentar1" JTL-Wawi 1.8 0
Neu Migration Shopware 5 auf 6 mit JTL-Wawi ohne Datenverlust Shopware-Connector 1
[JTL-WAWI API] Bestellung mit Stücklistenartikel JTL-Wawi 1.8 5
Neu Stücklisten mit puffer Bezug von anderen Artikeln User helfen Usern - Fragen zu JTL-Wawi 1
Wichtig Beta Connector für Presta 8 mit PHP 8+ PrestaShop-Connector 35
Neu Probleme mit EAN als Barcode bei Varkombis Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 3
Artikelstatistik mit Umlagerungen JTL-Wawi 1.8 0
Neu CSV Auftrag mit Artikeldaten (GTIN, Beschreibung, etc.) exportieren Arbeitsabläufe in JTL-Wawi 1
Neu PrestaShop Connector für Prestashop 8 mit PHP 8.2 wird nicht unterstützt PrestaShop-Connector 3
Neu Packtisch: In der Liste der Aufträge neue Feld-Spalte mit Spalteneditor hinzufügen Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Neu Wechsel WAWI Hosting von JTL mit RDP auf ecomDATA User helfen Usern - Fragen zu JTL-Wawi 2
Neu Eigene Seiten mit Plugin erstellen Technische Fragen zu Plugins und Templates 1
Neu Alles Artikel "unverkäuftlich" mit Urlaubshinweis JTL-Ameise - Ideen, Lob und Kritik 4
Wo befindet sich das Feld mit der Information für "Zustandsbeschreibung" auf Ebay? JTL-Wawi 1.8 9
Neu Ärger mit WMS mobile - Scan bestätigt nicht zuverlässig die Eingabe Gelöste Themen - JTL-WMS / JTL-Packtisch+ 4
Neu 2x SumUp als Zahlungsmethode mit 2x verschiedenen SumUp Accounts aber 1x Kartenlesegerät? Allgemeine Fragen zu JTL-POS 0
Neu Service-Bestellungen / Dienstleistungen mit WMS abbilden Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Neu Nach Umstellung auf WMS Probleme mit der JTL Ameise Installation von JTL-WMS / JTL-Packtisch+ 0
Neu Auftrag mit Freiposition Menge 0 läßt sich nicht ausliefern + wird nicht auf Lieferschein angezeigt User helfen Usern - Fragen zu JTL-Wawi 1
In Bearbeitung POS verbindet nicht mit SumUp Air Allgemeine Fragen zu JTL-POS 3
Neu Probleme mit Artikelzustand bei Ebay Laufene Artikel ändern Einrichtung und Installation von JTL-eazyAuction 4
Auktionen mit Anpassungsfunktion Amazon-Anbindung - Ideen, Lob und Kritik 0
Neu Videoeinbindung mit OnePage Composer Technische Fragen zu Plugins und Templates 1
Neu Zahlungsziel mit Skonto im Auftrag ausweisen Gelöste Themen in diesem Bereich 4
Neu Probleme mit dem Divi Theme WooCommerce-Connector 5
Neu Hilfe - Performanceproblem mit Shop durch Worker JTL-Shop - Fehler und Bugs 28
Neu JTL Wawi Bild-Upload unvollständig oder nur als mit meinem PC hochgeladen zu sehen User helfen Usern - Fragen zu JTL-Wawi 2
Neu Shop Suchfunktion Probleme mit (HTML-)Sonderzeichen JTL-Shop - Fehler und Bugs 0
Neu Anleitung: Artikeletiketten für Auftrag, Rechnung, Lieferschein etc. drucken mit Etikettenanzahl = Artikelanzahl User helfen Usern - Fragen zu JTL-Wawi 0
Neu Amazon + Multishop mit evtl 2 Mandanten Starten mit JTL: Projektabwicklung & Migration 3
Neu Kuriosum - Shop 5.1.5 mit Datenbank 5.2.4 Mischbetrieb nach fehlgeschlagenem Update Installation / Updates von JTL-Shop 8
Neu Lieferantenbestellung als CSV mit selbst festgelegten Spalten per Mail senden Arbeitsabläufe in JTL-Wawi 1
Ameise - Auftragsimport mit mehreren Artikelpositionen JTL-Wawi 1.8 1
Neu Eigener (Home-) Server mit Windows UND Linux Starten mit JTL: Projektabwicklung & Migration 23
In Bearbeitung Bon mit Artikeln: Keine Auslieferung? Auftrags-Übernahme: Keine Anpassungen möglich? Allgemeine Fragen zu JTL-POS 3
Neu Automatisierter Import Händler-CSV, Problem mit unterschiedlichen Artikeln bei gleicher EAN Schnittstellen Import / Export 7
Neu Probleme mit Swatches Allgemeine Fragen zu JTL-Shop 7

Ähnliche Themen