Cron Jobs在处理时是否实用> 190,000个月度任务?

时间:2014-02-11 04:00:28

标签: php mysql linux cron

我必须为我的老板设置定期发票系统,我们的系统是在centos linux服务器上使用php构建的。我们每个月都有大约50,000个客户,我的工作是建立一种方法来处理每周所有50,000个客户的发票脚本,因此脚本将创建一个新发票并在我们的mysql中对发票表执行插入查询数据库。

我担心的是,如果每周运行50,000个单独的cron作业会导致我们的服务器负载过重,crontab在导致性能问题之前能够处理哪种限制?

另外需要注意的是,crontab文件需要经常通过php脚本进行编辑,以便编辑和/或删除单个发票/ cronjobs。

基本上这是最好的路线吗?

2 个答案:

答案 0 :(得分:3)

您应该有一个运行一次的Cron作业,并循环遍历50,000个客户。

我通常做的是从数据库中选择一个,处理它,将其标记为已完成,然后转到下一个。我在运行超过170秒之后让我的循环退出,并将整个月的每3分钟设置一个Cron作业 - 它会尽可能地通过它们。

答案 1 :(得分:1)

绝对不是!您可以安排一个cron作业来生成发票。此作业将获取客户列表并为其生成发票。如果一个作业生成发票需要大量时间,您可以考虑并行处理。