Http Cache + Cronjob Daten

Hallo, bei uns werden die Preise und die Lieferbarkeit bzw. die Anzahl die Verfügbar ist automatisch per Cronjob jeden Tag aktualisiert. Jetzt wird bei eingeschaltetem Http Cache leider der Preis und die Verfügbarkeit und der Bestand (attr5) nicht korrekt angezeigt, obwohl dieser aktuell in der DB drinnen steht. Bei einer manuellen Änderung im Backend klappt es ja, aufgrund der „Automatische-Cache-Invalidierung“. Wie kann ich Daten immer Live aus der DB holen, gibt es dort einen Weg, bzw kann man die Invalidierung nach dem Cronjob automatisch anstossen ? Vielen Dank im voraus…

Hi du kannst doch auch den Cache per cronjob löschen. Dann sollten die Daten wieder aus der DB ausgelesen werden. Den cronjob also einfach nachlaufen lassen.

Hallo, danke für Deine Antwort. Da der Lagerbestand alle 30 Minuten aktualisiert wird, macht es denn Sinn den Cache jedesmal zu löschen ? Dann ist ja eigentlich der Effekt der Schnelligkeit wieder hin, da er jedes mal neu aufgebaut werden muss. Es muss doch irgendwie möglich sein gewisse Daten Direkt aus der DB lesen zu können. Danke und Gruß

Du kannst in den Einstellungen auch einzelne Sachen vom Cache ausschließen. Vlt. bringt dir das was? http://wiki.shopware.de/Cache-Performan … HTTP-Cache Sent from my iPad using Tapatalk

Hallo, hatte ich schon probiert, bringt aber leider nicht den gewünschten Erfolg :-(. So macht die Sache ja leider keinen Sinn für mich, der Geschwindigkeitszuwachs ist enorm und da würde ich ungern drauf verzichten. Beim Update der Daten in der DB das Feld “Changetime” zu ändern, bringt leider auch kein Erfolg, dachte das System schaut nochmal in das Feld rein um die Daten vorher zu aktualisieren.

An die Entwickler, falls diese mitlesen … Kann es sein das die [quote]Nicht gecachten Controller Tags[/quote] gar keinen Sinn haben, wenn ich direkt in der DB etwas ändere ? Wenn ich im Backend was veränder wird ja ein Ban generiert und die Daten sind im Frontend aktuell, das passiert aber nicht wenn ich direkt in die DB schreibe. Gibt es denn eine Möglichkeit den BAN Request manuell anzustoßen ? Danke im voraus für die Bemühungen

Wir haben momentan das selbe Problem. Da Shopware nur Rabatte auf Artikel ermöglicht, haben wir eine Preiskalkulation in PHP geschrieben. Die Preise berechnen sich aus dem Einkaufspreis * der Marge. Dieser wird dann für jeden Artikel direkt in die Datenbank geschrieben. Leider werden die neuen Preise aber erst angezeigt, wenn ich manuell im Backend den Shopcache lösche. Da die Preise 2 mal täglich aktualisiert werden, wäre jedes mal den Cache zu löschen nicht sehr sinnvoll. Gibt es eine Möglichkeit die aktuellen Preise aus der Datenbank im Frontend ausgeben zu lassen, ohne immer den ganzen Cache löschen zu müssen. Also quasi vollautomatisiert per CronJob z.B. ? Über Hilfe würde ich mich sehr freuen. :thumbup: mfg

Gibt es eventuell mitllerweile eine Lösung für das Problem? Wir haben genau das selbe Problem wie der TE. Leider können wir deshalb keinen Cache nutzen. Gibt es keine Möglichkeit diesen BAN_Request irgendwie auszuführen? Wenn man die Preise per Script einfügt werden mit aktiviertem Cache veraltete Preise angezeigt. :frowning:

Hallo, wenn die Preise innerhalb von Shopware geändert werden, z.B über ein Plugin kann ganz einfach ein Event geworfen werden. $cacheId = 'a'.$articleId; $cachware()-\>Events()-\>notify( Shopware\_Plugins\_HttpCache\_InvalidateCacheId', array('cacheId' =\> $cacheId) ); Dadurch wird ein BAN request erzeugt der den Cache für die übergebene cacheId löscht. Siehe: engine/Shopware/Plugins/Default/Core/HttpCache/Bootstrap.php:445 Viele Grüße, Benjamin Cremer :shopware:

1 „Gefällt mir“

Hallo, vielen dank für die Antwort. Wie kann ich den das Event für den Ban Request in einem Cronjob Plugin einbauen ? Da scheitert es gerade bei mir :frowning: Gruß Force