长期运行的Magento流程

时间:2012-08-27 16:07:08

标签: php performance magento

任何人都有使用长期运行的Magento流程来减轻开销的经验。例如,对订单或客户资源的典型Magento API调用可能需要1秒或更多,可能有一半时间用于Magento开销,而不是特定于所讨论的API资源。

那么,如果Magento PHP进程在内存中进行了旋转和维护,等待API请求,那么它就可以处理它们,而无需每次都加载Magento。

我对长时间运行的php脚本的大多数搜索都提出了与PHP脚本故障排除相关的问题/问题,这些脚本花费的时间比预期的要长,以便他们处理的数据量b / c等等 - 所以我发现很难在这类事情上找到好的资源,如果它甚至可能的话。

更新:根据我的需要更具体一点:

  • 我已经将memcached用于简单的GET,我们可以安全地缓存服务器端。
  • 我现在想优化的写作操作。
  • 使用REST API,因此没有任何我们关注的WSDL加载。

1 个答案:

答案 0 :(得分:1)

您可能希望查看proc-open,并且您需要执行通常在操作系统本身中进行的大量管理。

然而,如果问题是速度问题而不仅仅是想要一种管道/分叉的方法来使用可用的硬件,我会考虑简单地找出系统中的瓶颈,并在潜入之前进行缓存。如WSDL缓存,数据库规范化,OP代码缓存甚至是memcache或反向代理缓存。 Alan在他的Mercury API产品(http://store.pulsestorm.net/products/mercury-api

中确实有WSDL缓存

我之前使用proc-open使用同样的方法在不到8小时内导入超过500k的客户记录(通过我可能添加的Magento模型(堆栈))和32核心系统上的Magento地址。一个PHP文件充当主要入口点,基于数据块的新进程被分叉到执行实际导入的辅助PHP文件。

我确实利用这个小脚本对我提到的导入进行多线程处理,虽然这不是你问题的确切答案,因为它似乎没有特定于技术上的特定方面,但希望能提供一些有关可能性的见解: