将一个大脚本分解成更小的批



我为一个magento商店写了一个脚本,它的目的是填充一个.txt文件,然后由Google Merchant Centre读取。

脚本运行正常,但是magento存储托管在一个糟糕的主机上,每个PHP实例只允许256MB。这是无法更改的,所以我能看到的唯一解决方案是将脚本分解,使其一次只处理几个产品,每隔几分钟作为cron作业运行一次。

不过,我很难想出一种有效的方法来做到这一点。我可以限制我选择的产品数量,但下次运行脚本时,它不知道什么添加到了.txt中,什么没有添加。

谢谢你的帮助。

一个简单但可能有点脏的解决方案可以是在products表中添加一个简单的"checkbox"列,或者有一个只有两列的额外表,即product Id和时间戳。然后,您可以使用时间戳来排序并限制提取的行数。

select productId, lastProcessed from productProcess order by lastProcessed asc limit 0,<whatever your limit>

然后,当您处理每一行时,您可以使用NOW()更新lastProcessed列。如果你不想连续处理产品,你可以使用复选框列来标记你处理的时间,然后在某个时间清除所有的"复选框"。

它增加了加工时间,但这样你就可以确定你已经加工了哪些产品。

这只是几个变体,您可以在此基础上提出其他解决方案。

最新更新