Ich erhalte einige Male am Tag die folgende Fehlermeldung, und mein Wissen über das Innenleben von Magento CE 1.9.0.1 ist dünn genug, dass ich nicht weiß, ob dies ein normales Beratungsverhalten von Magento ist oder ob es aussagekräftig ist Ich habe ein schlimmes Problem.
Hier ist die Nachricht:
Einer oder mehrere der Cache-Typen sind ungültig: Blockiert die HTML-Ausgabe. Klicken Sie hier, um zur Cache-Verwaltung zu gelangen und die Cache-Typen zu aktualisieren.
Durch das Aktualisieren dieses bestimmten Caches wird das Problem für etwa ein paar Stunden behoben.
Ich bearbeite derzeit keine Layouts, Produkte usw., überhaupt nichts.
Was ist falsch und wie kann ich es korrigieren?
ce-1.9.0.1
block-cache
Dave G.
quelle
quelle
Antworten:
Zunächst ist es wichtig zu verstehen, dass dies kein Fehler ist, sondern lediglich eine Benachrichtigung.
Es kann unzählige Gründe geben, warum ein Blockcache aufgrund von Aktualisierungen von Produkten, Änderungen der Katalogpreisregeln und Erweiterungen von Drittanbietern ungültig wird. Auch das Ausführen von Cronjobs kann dazu führen, dass Block-Caches ebenfalls ungültig werden.
Es sind einige Community-Erweiterungen verfügbar (siehe unten), die Ihre Blöcke aktualisieren, sobald sie ungültig werden.
https://github.com/tomasinchoo/Inchoo_InvalidatedBlockCacheFix
https://github.com/mklooss/Loewenstark_InvalidCache
quelle
Dies ist ein Fehler.
Es gibt ein CRON-Jobproblem (nach 1.9.?), Das den HTML-Cache ausführt und ungültig macht, was zu Problemen führt (z. B. in meinem Fall konnte der Preisnachlass nicht in den Warenkorb übertragen werden - daher würde einem Kunden ein falscher Betrag berechnet).
Wir sollten keine Erweiterung ausführen müssen, um ein eingeführtes Problem zu beheben!
quelle
Dies ist eine Standard-Magento-Operation ab 1.6.xx und höher. Etwas verursacht immer eine zufällige Ungültigmachung des HTML-Blockcaches.
Ich habe gerade einen Beobachter eingerichtet, der bei einem regelmäßigen Cron-Job ausgelöst wird, und das Intervall festgelegt, das angemessen erscheint.
Observer.php
config.xml
quelle
Dieser ungültige Cache-Indikator hängt wahrscheinlich mit dem Cron "dailyCatalogUpdate" zusammen. Es ist für das Anwenden / Aktualisieren von Katalogregeln verantwortlich.
Einmal am Tag ruft es an
Mage::getSingleton('catalogrule/rule')->applyAll();
.Im Code dieser Methode gibt es einen Aufruf von
$this->_invalidateCache()
, der wiederum$this->_app->getCacheInstance()->invalidateType()
denblock_html
Cache aufruft .Das Problem ist, dass der Cache ungültig wird, ohne dass überprüft wird, ob er tatsächlich noch gültig ist. Für mich ist dies besser, als den Cache nicht ungültig zu machen, denn dann können Sie zumindest wissen, dass er ungültig sein könnte, und so etwas wie das verwenden, was Fiasco Labs vorgeschlagen hat , um die (möglicherweise) ungültigen zwischengespeicherten Daten zu leeren.
Es wird dann eine Entscheidung darüber, ob Sie Fehler auf der Seite von:
A) Den Kunden den falschen Preis anzeigen, aber den Cache behalten und damit weniger Serverlast haben
oder
B) Anzeigen des korrekten Preises, jedoch mit mehr Cache-Fehlern und daher höherer Serverlast.
In der Informatik gibt es zwei schwierige Dinge: das Benennen von Dingen und die Ungültigmachung des Caches .
quelle
Hier finden Sie die Lösung: /magento//a/72687
Ändern Sie grundsätzlich die Funktion dailyCatalogUpdate von app / code / local / Mage / CatalogRule / Model / Observer.php in
quelle