PHP+;通过CLI运行时的Memcached异常
我们最近开始使用ZF2提供的Memcached缓存适配器。当使用web浏览器(Apache HTTP服务器)时,服务器似乎运行得很好,但当从CLI运行应用程序时,我看到了两个不同的异常。当PHP+;通过CLI运行时的Memcached异常,php,zend-framework,zend-framework2,memcached,libmemcached,Php,Zend Framework,Zend Framework2,Memcached,Libmemcached,我们最近开始使用ZF2提供的Memcached缓存适配器。当使用web浏览器(Apache HTTP服务器)时,服务器似乎运行得很好,但当从CLI运行应用程序时,我看到了两个不同的异常。当Zend\Session\SaveHandler\Cache将会话写入内存时,出现异常 第一个异常返回的错误代码为47(MEMCACHED\u SERVER\u临时禁用)。在用尽了许多选项之后,我决定尝试重新编译Memcached、libmemcached和PECL扩展。这样做之后,我开始得到一个不同的结果co
Zend\Session\SaveHandler\Cache
将会话写入内存时,出现异常
第一个异常返回的错误代码为47(MEMCACHED\u SERVER\u临时禁用
)。在用尽了许多选项之后,我决定尝试重新编译Memcached、libmemcached和PECL扩展。这样做之后,我开始得到一个不同的结果code-26(MEMCACHED\u ERRNO
)。此代码的结果消息为“系统错误:管道破裂”
在缓存适配器中,internalSetItem($normalizedKey,$value)
方法检查Memcached::set($key,$value,$expiration)
返回的布尔值。如果为false,则表示发生了故障,ZF2适配器将基于Memcached::getResultCode()
和Memcached::getResultMessage()
方法引发异常。在此之前,我们只是没有检查结果代码或消息,所以它可能一直都在发生
我的开发环境规范如下:
- 带有Memcached 2.2.0(PECL)的PHP5.5
- Memcached 1.4.20
- Libmemcached 1.0.18
- Zend框架2
pcntl\u fork()
创建新流程exec('/usr/bin/php index.php作业\u名称')
事实证明,第三步执行起来没有任何问题。每个作业都完全按照预期运行,但分叉似乎在父进程中创建Memcached问题。那就是我现在所在的地方。如果link有什么帮助吗?谢谢你的回复。不幸的是,虽然我遇到了这个问题/答案,但它不适用于我的情况。如果您使用memcached作为会话存储,我建议在fork操作之前运行session\u write\u close()。