Neu Exporte immer zur konfigurierten Zeit ausführen anstatt nach Schema "Fixed-Delay"?

things4it

Aktives Mitglied
17. Februar 2014
60
13
Hallo,

wenn ich es richtig verstehe werden die Exporte nach dem Schema "FixedDelay" generiert.

Also habe ich z.B. den Google-Shopping-Export auf 0:00 Uhr, Intervall 24 Stunde konfiguriert, wird er nur bei der ersten Ausführung um 0:00 Uhr gestartet.
Endet der Export am 01.01.2021 um 1:24 Uhr, startet der nächste Export am 02.01.2021 um 1:24 Uhr (01.01.2021 1:24 + 24 Stunden)

Sprich der Export verschiebt sich Tag für Tag.

Aber gerade für Exporte, wo eine Gegenseite (in dem Fall google-shopping), den Export zu einer bestimmten Uhrzeit abholt, ist das ja etwas doof.
Vorallem dann wenn man wie bei google-shopping einen Feed nur einmal am Tag abholen kann.
Sprich man importiert dort dann veraltete Preise und Bestände und zahlt ggf. für Shopping Kampagnien, obwohl die Artikel seit einem oder mehreren Tagen nicht mehr verfügbar sind.
Wir haben zwar ein Plugin in Testphase, was stündlich die Preise und Bestände der geänderten Artikel via API an google-shopping meldet, aber dessen Aktualisierungen werden natürlich auch mit dem veralteten Export überschrieben :(.

Die einzige dreckige Lösung die mir als JTL- Shop newbee einfällt, ist via SQL und crontab das Datum des letzten Starts (tcron#lastStart) zurück zu setzen - aber das ist mega der hack.

Daher ein paar doofe Fragen:
  • Gibt es dafür andere/saubere Lösungen?
  • Bin ich/wir einfach nur zu doof das richtig einzustellen oder habe das verhalten und den Core-Code falsch interpretiert?
  • Ist dafür ein Feature geplant über den man ein cron immer zur selben Zeit ausführen kann, also nicht die "FixedDelay" variante (wäre super wenn von JTL dazu jemand was sagen kann)
    • Fixed Delay macht ja definitiv Sinn, aber bei gewissen Exporten ist es halt eher ein Nachteil

Danke und viele Grüße
Johannes
 

artm

Sehr aktives Mitglied
22. Februar 2021
107
25
Also habe ich z.B. den Google-Shopping-Export auf 0:00 Uhr, Intervall 24 Stunde konfiguriert, wird er nur bei der ersten Ausführung um 0:00 Uhr gestartet.
Endet der Export am 01.01.2021 um 1:24 Uhr, startet der nächste Export am 02.01.2021 um 1:24 Uhr (01.01.2021 1:24 + 24 Stunden)
Ehrlich gesagt, die Bezeichnung "Cron-Job" bei JTL Shop ist eine Verwirrung für mich, es sollte Aufgabenplaner oder Task Planner heißen,
im Wirklichkeit hat man keinen Cron-Job, die Auslöser sind Nutzer und Bots. Ich denke Grund dafür waren Shop Nutzer, die keinen Einfluss auf Hosting hatten.

Am besten erstellt man einen echten Cron-Job an, dann sollten die Exporte richtig laufen.
 

things4it

Aktives Mitglied
17. Februar 2014
60
13
Am besten erstellt man einen echten Cron-Job an, dann sollten die Exporte richtig laufen.
die /includes/cron_inc.php wird bei uns wie von JTL empfohlen via crontab getriggert (falls du das meinst).
Ist also unabhängig von den Usern und hat keinen Einfluss auf die Verschiebung.

Die Selektion der Cron die gestartet werden erfolgt via folgendem SQL aus includes/src/Cron/Checker.php:82

SQL:
SELECT tcron.*
FROM tcron
LEFT JOIN tjobqueue
    ON tjobqueue.cronID = tcron.cronID
WHERE (
    tcron.lastStart IS NULL
    OR IF(tcron.jobType = 'statusemail' AND tcron.frequency = 720,
            MONTH(tcron.lastStart) = MONTH(CURRENT_DATE - INTERVAL 1 MONTH),
            (NOW() > ADDDATE(tcron.lastStart, INTERVAL tcron.frequency HOUR))
        )
    )
    AND tcron.startDate < NOW()
    AND tjobqueue.jobQueueID IS NULL

Wenn ich da nicht komplett falsch geschaut habe ist es schon "by design" so das sich das immer verschiebt :(.
 

artm

Sehr aktives Mitglied
22. Februar 2021
107
25
Wenn crontab wirklich läuft und Startzeit immer verschoben wird, dann klingt das definitiv nach einem Bug.
Habe Shop "Cron-Jobs" nicht ausprobieren, aber das würde mich auch interessieren.
 

things4it

Aktives Mitglied
17. Februar 2014
60
13
ja ich denke ein Bug ist es nicht, ist ja für Cron-Jobs die häufiger wie einmal am Tag laufen und etwas länger dauern ganz sinnvoll damit die sie nicht überschneiden ... .

Aber ja für den Fall google-shopping ist es nicht so praktisch.

Naja, wir behelfen uns jetzt folgendem SQL, das via crontab vom Betriebsystem ausgeführt wird:
SQL:
UPDATE tcron SET
        lastStart = concat(DATE(lastStart), ' ', startTime)
WHERE
        cronID = 122 # id des Google-Shopping crons

Ist halt hacky die Tabelle zu manipulieren, vllt. hat ja jemand eine bessere Lösungen?
 

artm

Sehr aktives Mitglied
22. Februar 2021
107
25
Habe nicht verstanden, was du mit Überschneidung meinst und was dabei sinnvoll ist, wenn ich alle Jobs um selbe Uhrzeit auf einmal starte, dann sollten diese in der Warteschlange stehen oder nicht, dafür ist doch die Tabelle "tjobqueue" da, die Startzeit-Verschiebung für Cron-Job klingt für komplett unlogisch :)

Ich würde eher prüfen wieso dauert der Export so lange. Um wie viele Einträge handelt es hier, dass Cron-Job allein über 1:30 Std. benötigt.

Diese Konstante müssten Cron-Prozess beschleunigen, aber man muss natürlich wissen, welche Ressoursen der Server verfügt:

Code:
define('JOBQUEUE_LIMIT_M_EXPORTE', 100000);
define('JOBQUEUE_LIMIT_JOBS', 30);
 

things4it

Aktives Mitglied
17. Februar 2014
60
13
Ich würde eher prüfen wieso dauert der Export so lange. Um wie viele Einträge handelt es hier, dass Cron-Job allein über 1:30 Std. benötigt.

Sind halt an die 170000 Artikel. JOBQUEUE_LIMIT_M_EXPORTE haben wir schon von glaube ich 500 auf 2000 hochgedreht, aber da geht sicher noch mehr.
Das der 1,5 Stunden braucht ist an sich nicht tragisch. Aber ja durch eine Beschleunigung vom Export wäre die Verschiebung nicht so drastisch.

Naja ich belass es mal bei dem dirty fix^^.

Vllt. hat ja jemand von JTL noch eine Info ob das jetzt eher ein Bug oder ob das bewusst so sein soll?
Oder einfach ein Bug- Ticket/Feature-Request erstellen?
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu JTL Shop 5.3.X - Fehlerhafte Artikellinks bei Export über Exporte-Manager JTL-Shop - Fehler und Bugs 1
Neu Artikel CSV Exporte dem Kunden zur verfügung stellen. Allgemeine Fragen zu JTL-Shop 7
Neu Artikel immer ohne Sonderpreis kopieren Arbeitsabläufe in JTL-Wawi 0
Neu Herstellerbilder lassen sich in 5.3.3 immer noch nicht größer machen Allgemeine Fragen zu JTL-Shop 0
Bildlaufleiste immer Oben JTL-Wawi 1.6 0
Rechnungen an Ebay und Amazon Kunden immer digital zusenden JTL-Wawi 1.9 0
Bestseller verschwinden immer wieder von der Startseite Einrichtung JTL-Shop5 0
Neu Bei VarKombi-Artikeln, wie immer eine Farbe und Größe vorauswählen, damit alle Bilder angezeigt werden? Allgemeine Fragen zu JTL-Shop 4
Neu Abholung mit DHL: Ist das immer so schlimm? User helfen Usern 5
Neues Fenster immer im Vordergrund anzeigen? JTL-Wawi 1.9 3
In Bearbeitung JTL-POS Datensicherungen werden immer größer, Archivierung und Neubeginn? Allgemeine Fragen zu JTL-POS 10
Neu JTL-Infoschreiben "Wichtige Neuerung im Postgesetz zur Kennzeichnungspflicht" - Umsetzung auch für Österreichische Post Labels ? JTL-ShippingLabels - Ideen, Lob und Kritik 0
Neu Frage zur Rechtevergabe bei eigenen Übersichten Eigene Übersichten in der JTL-Wawi 0
Neu Keine Verbindung zur Datenbank vom Terminalserver Installation von JTL-Wawi 1
Neu Frage zur Korrekturbuchung User helfen Usern - Fragen zu JTL-Wawi 0
Neu Export von Buchungsdaten zur Differenzbesteuerung als CSV Datei Schnittstellen Import / Export 0
Neu Möglichkeit zur Selbstabmeldung bei Arbeitsplatzwechsel JTL-WMS / JTL-Packtisch+ - Ideen, Lob und Kritik 1
Neu SQL Code zur Ausgabe des Verkaufspreis je Kundengruppe User helfen Usern 1
In Diskussion Fragen zur Rechnungserstellung via Workflow JTL-Workflows - Ideen, Lob und Kritik 2
Neu Amazon Für das Feld "Preis mit Steuern zur Anzeige eBay-Anbindung - Fehler und Bugs 2
Neu Frage zur Plugin Entwicklung Plugins für JTL-Shop 3
Angaben zur Erfüllung GPSR gebündelt bearbeiten Otto.de - Anbindung (SCX) 4
Neu Frage zur Kartonagen Verwaltung in JTL WMS 1.8 - Karton per Scan ersetzen? Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 1
Neu Amazon Rechungskorrekturen / Storno: Neu ausstellen / Es existiert kein Auftrag zur Rechnung Einrichtung und Installation von JTL-eazyAuction 8

Ähnliche Themen