我測試我的Symfony2應用 了Memcached我將它設置爲緩存主義的查詢,結果和元數據:如何讓服務器脫機時忽略Memcached的原則?
orm:
entity_managers:
default:
metadata_cache_driver:
type: service
id: doctrine.cache.memcache2
query_cache_driver:
type: service
id: doctrine.cache.memcache2
result_cache_driver:
type: service
id: doctrine.cache.memcache2
services:
memcache:
class: Memcache
calls:
- [ addserver, [ 'localhost', 11211 ]]
doctrine.cache.memcache2:
class: Doctrine\Common\Cache\MemcacheCache
calls:
- [setMemcache, [@memcache]]
到現在爲止,一切工作正常。
我想知道如果Memcached服務器出現故障,doctrine的行爲如何。據我所知,應用程序中斷。在開發模式我得到以下信息:
聲明:MemcachePool ::得到():服務器localhost(TCP 11211,UDP 0)失敗:連接嘗試失敗,因爲連接的方沒有正確後響應一段時間,或建立的連接失敗,因爲連接的主機未能響應。 (10060) 500內部服務器錯誤 - ContextErrorException
在生產模式,我還帶有一個HTTP 500
有沒有辦法告訴學說繞過/忽略Memcached的服務器和去直接到數據庫,而不是返回500s?
我測試了您的解決方案,雖然看起來不錯,但我無法看到使用Memcache服務器的應用程序......在開發模式下是否使用了二級緩存?是否有必要在實體的@Cache註釋中指定區域「region_name」作爲我的區域? – ohvitorino
我得到了二級緩存的工作。但行爲是一樣的。 Memcached被殺的那一刻,請求返回500。 – ohvitorino