我必须为我的老板设置一个循环发票系统,我们的系统是在 centos linux 服务器上用 php 构建的。我们每个月有大约 50,000 个客户开具发票,我的工作是建立一种方法来每周为所有 50,000 个客户处理发票脚本,因此该脚本将创建一个新发票并在我们的 mysql 中的发票表中执行插入查询数据库。
我担心的是,如果每周运行 50,000 个单独的 cron 作业会导致我们的服务器负载过重,那么 crontab 在导致性能问题之前能够处理什么样的限制?
同样重要的是要注意,crontab 文件需要经常通过 php 脚本进行编辑,以编辑和/或删除单个发票/cronjobs。
基本上这是最好的路线吗?
最佳答案
您应该有一个运行一次的 Cron 作业,并循环遍历 50,000 个客户。
我通常做的是从数据库中选择一个,处理它,将其标记为完成,然后继续下一个。我让我的循环在运行超过 170 秒后退出,并将 Cron 作业设置为整个月每 3 分钟运行一次 - 它会尽可能地完成它们。
关于php - 在处理超过 190,000 个每月任务时,Cron 作业是否实用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21692837/