Magento可以';无法识别memcached php会话


Magento can't recognize memcached php sessions

我正在进行magento部署,主要目的是精简产品创建。基本上,我们在后端有一些非常耗时的调用,这些调用应该异步运行,这样用户就可以继续工作了

  • 我的第一个尝试是使用AJAX将数据发布到耗时的脚本中,并通过javascript重新定位用户

这在一定程度上起作用,但magento会话似乎取决于php会话——据我所见,用户将在php.ini中指定的目录中创建一个会话,并在magento/var/session中创建一一个会话。

由于这个php会话是基于文件的,在第一次调用(ajax调用的脚本)完成之前,我无法在第二次请求(重定向)或同一会话内的任何其他请求中从服务器获得任何响应。

  • 我的解决方案是内存缓存这些会话文件(与magento一起),以便允许这些异步调用

然而,由于这些会话存储在memcache中,所以magento似乎无法识别它们。

为什么会这样?

我认为它在访问这些会话时使用了标准的php函数——不过我在源代码中找不到任何这些函数,但必须以某种方式调用它们。

我已经成功地测试了会话是否可以正确存储和加载。我没有收到错误消息,日志为空。

知道为什么马根托不能处理这个吗?

为了实现这些异步调用,这是一种可以接受的方法吗?或者有更好的解决方案吗?

TL;DR使用memcache存储标准php会话。马根托似乎认不出他们了。为什么会这样?

听起来您的app/etc/local.xml文件中没有定义memcached。它应该看起来像这样:

<session_save><![CDATA[memcache]]></session_save>
<session_save_path><![CDATA[tcp://xxx.xxx.xxx.xxx:11211?persistent=1&weight=2&timeout=10&retry_interval=10]]></session_save_path>

xxx.xxx.xxx.xxx替换为memcached服务器地址。

所以这很尴尬。。不用说,当我今天早上重新启动后测试它时,它工作了。也许必须重新启动memcache服务?并没有像我所希望的那样解决我最初关于异步调用的问题,但那是另一回事。:D美好的一天