Estou trabalhando com o Magento 1.9.0.1 e, de vez em quando, nossos servidores Redis que hospedam o cache do Magento (AWS ElastiCache) ficam inativos. Quando isso acontece, o Magento fatalmente erros até Redis estar disponível novamente.
Essa pode ser uma pergunta difícil de responder rapidamente, mas o que me pergunto é por que o Magento não pode agir como se o cache estivesse desativado quando não puder se conectar ao Redis, em vez de errar fatalmente?
Não conheço nenhuma configuração ou módulo que ofereça essa capacidade ao Magento, mas aparentemente não é difícil. O Magento usa local.xml
para descobrir como se conectar ao banco de dados e ao back-end do cache. Em seguida, ele se conecta ao banco de dados e analisa as opções de cache para saber se deve ou não usar o cache. Se solicitado pelo banco de dados a usar um determinado cache, ele alterna algum sinalizador (provavelmente uma variável global ou a propriedade de um singleton) e usa o back-end do cache para o restante da solicitação. Não foi possível fazer com que o Magento desligue isso durante essa solicitação se ocorrer um erro de conexão?
Um site lento é melhor que um erro fatal.
Edit: Evidentemente, algumas pessoas não entendem o que estou perguntando ou realmente não leram este post.
Existe um módulo que dará ao Magento a capacidade de funcionar sem erro fatal quando o Redis não estiver disponível, quando o Redis estiver sendo usado como o principal método de armazenamento em cache.
Caso contrário, alguém poderia me esclarecer por que isso não é possível ou é muito difícil?
fonte
Respostas:
Tudo o que você precisa fazer é corrigir 3 questões / problemas:
Obviamente, você pode alterar algum código e colocar sua lógica em vez de erro.
fonte