Magento无法识别memcached php会话

时间:2012-02-28 19:29:19

标签: php session magento memcached

我正在进行magento部署,主要目标是简化产品创建。 基本上我们在后端有一些非常耗时的调用,它应该以异步方式运行,以便用户可以进行操作。

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

这有点起作用,但magento会话似乎依赖于php会话 - 据我所知,用户将在php.ini中指定的目录中创建会话,并在{{1}中创建一个会话}。

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

  • 我的解决方案是将这些会话文件(以及magento)存储到内存中,以便允许这些异步调用。

然而,magento现在似乎无法识别这些会话,因为它们存储在memcache中。

这是为什么?

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

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

为什么magento无法解决这个问题?

为了实现这些异步调用,它是否是一种可接受的方法,还是有更好的解决方案?

TL; DR 使用memcache存储标准的php会话。 Magento似乎无法识别它们。这是为什么?

2 个答案:

答案 0 :(得分:0)

听起来您的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服务器地址。

答案 1 :(得分:0)

所以这很尴尬..不用说当我今天早上测试它重新启动它有效。也许memcache服务必须重新启动?没有像我希望的那样解决关于异步调用的原始问题,但这是另一个故事。 :d 美好的一天