【问题标题】:Breaking up a large script into smaller batches将大脚本分解成更小的批次
【发布时间】:2012-02-06 14:29:50
【问题描述】:

我为 magento 商店编写了一个脚本,其目的是填充一个 .txt 文件,而该文件又由 Google Merchant Centre 读取。

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

不过,我正在努力想出一种有效的方法来做到这一点。我可以限制我选择的产品数量,但是下次脚本运行时它不会知道哪些已添加到 .txt 中,哪些未添加。

感谢您的帮助。

【问题讨论】:

  • 为什么不只计算txt文件中的行数并将其用作偏移量?

标签: php magento logic


【解决方案1】:

一个简单但可能有点脏的解决方案可能是在产品表中添加一个简单的“复选框”列,或者有一个额外的表,其中只有两列,即产品 ID 和时间戳。 然后您可以使用时间戳来排序并限制获取的行数。

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

然后,当您处理每一行时,您可以使用 NOW() 更新 lastProcessed 列。 如果您不想连续处理产品,可以使用复选框列标记您何时处理,然后在特定时间清除所有“复选框”。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-04
    • 2020-02-16
    • 2013-04-22
    • 2017-08-07
    • 2017-01-30
    • 2020-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多