2012-08-27 73 views
1

任何人有任何的经验。例如,一个典型的Magento API调用的命令或客户资源可能需要1秒或更多,与当时可能一半花在了Magento的开销,而不是具体到有问题的API资源。长时间运行Magento的过程中使用长时间运行Magento的过程,以减轻开销

所以,如果有什么Magento的PHP程序进行纺丝并保持在内存中,等待API请求,以便它可以无需每次都加载了Magento的处理它们。

我对长时间运行的PHP脚本的大多数搜索都提出了有关解决PHP脚本问题的问题,这些脚本花费的时间比预期的要长,因为它们正在处理的数据量等等。如果甚至有可能,我发现很难找到有关这种事情的好资源。

更新:更具体一点与我的需求:

  • 我已经到位memcached的简单获取我们可以放心地缓存服务器端。
  • ,我想它的写操作现在来优化。
  • 使用REST API,所以没有任何WSDL负载,我们是关心的。
+2

对潜在内存泄漏的高度警惕将是非常重要的...... – Roscius

+2

通常,您必须在PHP中实现Web服务器(我确信有很多实现),引导Magento,然后为进程每个请求。有很多内存/资源管理需要考虑。 APC和memcache经常用作模仿行为的机制。您可能正在寻找符合应用范围的东西(例如在Java/.NET应用服务器中)。 – beeplogic

+0

感谢@beeplogic。任何指向APC/memcache基准的链接?我们已经在使用memcache进行API响应,可以完全缓存(主要是GET),但对于POST,我们并未使用它。我将进一步研究APC。就memcache而言,我们实际上是否可以缓存一个magento模型,然后从memcache中的独立PHP文件中加载它,而不需要任何magento加载开销并使用它?这似乎不可能,但真棒。 – kalenjordan

回答

1

你可能想看看proc-open,你需要做很多管理工作,通常是在操作系统本身。然而,如果问题是速度问题,而不是仅仅想要一个方法来使用pipe/fork来利用可用的硬件,那么我会考虑简单地找出整个系统的瓶颈,并且在潜入之前进行缓存。如WSDL缓存,数据库标准化,OP代码缓存或甚至是内存缓存或反向代理缓存。 Alan在他的Mercury API产品中有WSDL高速缓存(http://store.pulsestorm.net/products/mercury-api

在使用Magento的32位内核系统时,我通过Magento的模型(堆栈)超过8小时使用这种相同的方法。一个php文件中担任基础的数据块被分叉出来的是没有实际进口次要PHP文件的主要切入点和新工艺。

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

+0

谢谢@Boomer!所以,我最近已经阅读了最近有关Alan的WSDL缓存收益 - 相当激烈 - 但我们实际上使用了一个REST API,因此不确定这将适用于我们。数据库规范化 - 是否有很多可以完成的事情,因为Magento本身对现有的数据库结构有相当大的影响?我们创建的自定义表格非常少。 OP代码缓存 - 将检查出来。 Memcache /反向代理 - 我们已经对简单的GET进行了适当的处理,以便我们可以缓存服务器端,但是这是我们想要关注的更多内容。 – kalenjordan

+0

你可能想看看插入缓冲:http://dev.mysql.com/doc/refman/5.0/en/innodb-insert-buffering.html – B00MER