我正在为电子商务网站编写脚本。它将允许客户订阅许多类别之一的更改。或者任何类别组合,因此发送给单个客户的电子邮件可能对该客户是唯一的。它将由cron每周运行一次。
这是一个繁忙的网站,最终可能会有成千上万的订阅,每个订阅需要处理,然后发送电子邮件。那么,问题是这样做的最佳方式是什么?
在单个文件中,该过程将不可避免地超时。
我可以运行单独的cron作业,直到订阅列表完成为止?或者可能将文件重定向到自己,直到列表完成?
有没有一种标准的方法可以做到这一点?感谢任何建议。
如果这是重复,我道歉。我搜索过,但找到合适的搜索字词很棘手。
答案 0 :(得分:0)
批量执行更新。
我们需要在表格中创建一个“旗帜”
ALTER TABLE `foo`
ADD COLUMN `is_updated` tinyint(1) NOT NULL DEFAULT 0; //0 = not updated. 1 = updated
因此,在cron调用的文件中,我们可以执行以下操作来获取(下一个)1000个未处理的行;
SELECT * FROM `foo` WHERE `is_updated` = 0 ORDER BY `id` ASC LIMIT 1000
然后我们可以用这1,000个条目执行我们的实际逻辑,最后更新它们。
UPDATE `foo` SET `is_updated` = 1 ORDER BY `id` ASC LIMIT 1000