Kilka razy dziennie otrzymuję następujący komunikat o błędzie, a moja wiedza na temat wewnętrznego działania Magento CE 1.9.0.1 jest na tyle niewielka, że nie wiem, czy jest to normalne, doradcze zachowanie Magento, czy też mówi ja mam zły problem.
Oto wiadomość:
Jeden lub więcej typów buforów jest unieważnionych: Blokuje wyjście HTML. Kliknij tutaj, aby przejść do zarządzania pamięcią podręczną i odświeżyć typy pamięci podręcznej.
Odświeżenie tego konkretnego bufora powoduje, że problem zniknie na kilka godzin.
Obecnie nie edytuję układów, produktów itp., W ogóle nic.
Co jest nie tak i jak mogę to naprawić?
ce-1.9.0.1
block-cache
Dave G.
źródło
źródło
Odpowiedzi:
Po pierwsze, ważne jest, aby zrozumieć, że nie jest to błąd, a jedynie powiadomienie.
Istnieje wiele powodów, dla których pamięć podręczna bloków jest nieważna z powodu aktualizacji produktów, zmian reguł cen katalogowych i rozszerzeń innych firm. Również uruchamianie cronjobs może spowodować unieważnienie pamięci podręcznych bloków.
Dostępnych jest kilka rozszerzeń społeczności (wymienionych poniżej), które odświeżą bloki, gdy zostaną unieważnione.
https://github.com/tomasinchoo/Inchoo_InvalidatedBlockCacheFix
https://github.com/mklooss/Loewenstark_InvalidCache
źródło
To jest błąd.
Wystąpił problem z zadaniem CRON (post 1.9.?), Który uruchamia i unieważnia pamięć podręczną HTML, co powoduje problemy (np. W moim przypadku nie udało się przenieść rabatu cenowego do koszyka - więc klient zostałby obciążony niewłaściwą kwotą).
Nie musimy uruchamiać rozszerzenia, aby naprawić wprowadzony problem!
źródło
Jest to standardowa operacja Magento od wersji 1.6.xx i nowszych. Coś zawsze powoduje losowe unieważnienie pamięci podręcznej bloku HTML.
Właśnie ustawiłem obserwatora, który wystrzeliwuje okresowe zadanie crona, ustawiając dowolny interwał, który wydaje się odpowiedni.
Observer.php
config.xml
źródło
Ten unieważniony wskaźnik pamięci podręcznej jest prawdopodobnie związany z cronem DailyCatalogUpdate. Odpowiada za stosowanie / odświeżanie reguł katalogu.
Raz dziennie dzwoni
Mage::getSingleton('catalogrule/rule')->applyAll();
.Wewnątrz kodu tej metody, jest wywołanie
$this->_invalidateCache()
, co z kolei wywołuje$this->_app->getCacheInstance()->invalidateType()
wblock_html
pamięci podręcznej.Problem polega na tym, że unieważnia pamięć podręczną bez przeprowadzania jakichkolwiek kontroli w celu ustalenia, czy może ona nadal być poprawna. Dla mnie jest to lepsze niż nie unieważnianie pamięci podręcznej, ponieważ wtedy możesz przynajmniej wiedzieć, że może ona być niepoprawna i użyć czegoś takiego, jak sugerowane przez Fiasco Labs, aby opróżnić (potencjalnie) nieprawidłowe dane w pamięci podręcznej.
Następnie staje się decyzja, czy chcesz popełnić błąd po stronie:
Odp.) Pokazanie klientom niewłaściwej ceny, ale utrzymanie pamięci podręcznej, a tym samym zmniejszenie obciążenia serwera
lub
B) Wyświetlanie prawidłowej ceny, ale więcej braków pamięci podręcznej, a zatem większe obciążenie serwera.
W informatyce istnieją dwie trudne rzeczy: nazewnictwo i unieważnianie pamięci podręcznej .
źródło
zobacz tutaj rozwiązanie: https://magento.stackexchange.com/a/72687
Zasadniczo zmień funkcję dailyCatalogUpdate z app / code / local / Mage / CatalogRule / Model / Observer.php na
źródło