我正在进行magento部署,主要目标是简化产品创建。 基本上我们在后端有一些非常耗时的调用,它应该以异步方式运行,以便用户可以进行操作。
AJAX
将数据发布到耗时的脚本中,并通过javascript
重新定位用户。 这有点起作用,但magento会话似乎依赖于php会话 - 据我所知,用户将在php.ini
中指定的目录中创建会话,并在{{1}中创建一个会话}。
由于这个php会话是基于文件的,因此我无法在第一次调用之前在第二次请求(重定向)或同一会话中的任何其他请求中获得服务器的任何响应(由{{1}调用的脚本}) 已完成。
然而,magento现在似乎无法识别这些会话,因为它们存储在memcache中。
这是为什么?
我认为它在访问这些会话时使用了标准的php函数 - 虽然我在源代码中找不到任何这些函数,但必须以某种方式调用它们。
我已成功测试会话可以正确存储和加载。 我没有收到任何错误消息,日志为空。
为什么magento无法解决这个问题?
为了实现这些异步调用,它是否是一种可接受的方法,还是有更好的解决方案?
TL; DR 使用memcache存储标准的php会话。 Magento似乎无法识别它们。这是为什么?
答案 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 美好的一天