Pracuję z Magento 1.9.0.1 i co jakiś czas nasze serwery Redis, które obsługują pamięć podręczną Magento (AWS ElastiCache) ulegną awarii. Kiedy tak się dzieje, Magento popełnia błąd, dopóki Redis nie będzie ponownie dostępny.
To może być trudne pytanie, na które należy szybko odpowiedzieć, ale zastanawiam się, dlaczego Magento nie może zachowywać się tak, jakby pamięć podręczna była wyłączona, gdy nie może połączyć się z Redis, zamiast fatalnie błądzić?
Nie znam żadnego ustawienia ani modułu, który dałby Magento tę zdolność, ale na pierwszy rzut oka nie wydaje się to trudne. Magento używa, local.xml
aby dowiedzieć się, jak połączyć się z bazą danych i backendami pamięci podręcznej. Następnie łączy się z bazą danych i sprawdza opcje pamięci podręcznej, aby dowiedzieć się, czy użyć pamięci podręcznej. Jeśli baza danych poleci jej użycie pamięci podręcznej, przełącza flagę (prawdopodobnie zmienną globalną lub właściwość singletona) i używa reszty pamięci podręcznej dla pozostałej części żądania. Czy nie można zmusić Magento do wyłączenia tego podczas tego żądania, jeśli wystąpi błąd połączenia?
Wolna strona jest lepsza niż błąd krytyczny.
Edycja: Najwyraźniej niektórzy ludzie nie rozumieją, o co pytam lub nie przeczytali tego postu.
Czy istnieje moduł, który da Magento możliwość działania bez błędu krytycznego, gdy Redis jest niedostępny, gdy Redis jest używana jako podstawowa metoda przechowywania w pamięci podręcznej.
Jeśli nie, czy ktoś mógłby mnie oświecić, dlaczego nie jest to możliwe lub jest bardzo trudne?
źródło
Odpowiedzi:
Wystarczy, że naprawisz 3 problemy / problemy:
Oczywiście możesz zmienić kod i umieścić logikę zamiast błędu.
źródło