小编ohv*_*ino的帖子

如果服务器离线,如何告诉学说忽略 Memcached?

我正在我的 Symfony2 应用程序上测试 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]]
Run Code Online (Sandbox Code Playgroud)

到目前为止,一切正常。

我想知道如果 Memcached 服务器出现故障,学说会如何表现。据我所知,应用程序中断了。在开发模式下,我收到以下消息:

注意: MemcachePool::get(): Server localhost (tcp 11211, udp 0) failed with: 连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立连接失败,因为连接的主机没有响应. (10060) 500 内部服务器错误 - ContextErrorException

在生产模式下,我还会看到一个 http 500。

有没有办法告诉教义绕过/忽略 Memcached 服务器并直接进入数据库,而不是返回 500s?

php memcached doctrine symfony doctrine-orm

5
推荐指数
1
解决办法
609
查看次数

标签 统计

doctrine ×1

doctrine-orm ×1

memcached ×1

php ×1

symfony ×1