我正在进行magento部署,主要目标是简化产品创建。 基本上我们在后端有一些非常耗时的调用,它们应该运行异步,以便用户可以继续工作。Magento无法识别memcached php会话
- 我在这第一炮是使用
AJAX
发布的数据耗时脚本,并通过javascript
重新定位用户。
这个有点工作,但Magento的会议似乎是依赖于PHP的会议 - 据我可以看到该用户将不得不在php.ini
,一个在magento/var/session
创建指定的目录下创建一个会话。
因为这个php会话是基于文件的,我不会在第一次调用之前在第二次请求(重定向)或同一会话中的任何其他请求中获得服务器的任何响应(该脚本由ajax
调用)完了。
- 我的解决方案是memcache这些会话文件(与magento一起)以允许这些异步调用。
但是,magento现在无法识别这些会话,因为它们存储在memcache中。
这是为什么?
我认为它在访问这些会话时使用了标准的PHP函数 - 尽管我在源代码中找不到这些函数,但它们必须以某种方式调用。
我已成功测试会话可以正确存储和加载。 我没有收到任何错误消息,并且日志为空。
任何想法为什么magento无法处理这个?
这是甚至可以接受的方法来实现这些异步调用,还是有更好的解决方案?
TL; DR 标准php会话正在使用memcache进行存储。 Magento似乎无法识别它们。为什么是这样?
感谢您的回应。但是,这并非如此。我在我的local.xml文件中有这个确切的代码,这使得magento自己的会话memcached - 这确实有效。例如,我可以将mangento自己的会话memcached和php的会话保存为文件 - 这是有效的。当我memcache php会话时发生问题。基本上每个会话有两个不同的会话(具有任何意义?) 通过文件结构,它可能看起来像这样: /web/tmp/[php会话,在php.ini中描述的路径] /web/www/magento/temp/sessions/[magento会话,config.xml中的路径] – user1238626 2012-02-29 09:44:56
FTR我正在测试这个wamp。 – user1238626 2012-02-29 10:01:13
你做错了什么。您应该在您通过ajax调用的自定义php脚本中重用magento会话。 – Zyava 2012-03-01 21:22:41