我必须为我的老板设置定期发票系统,我们的系统是在centos linux服务器上使用php构建的。我们每个月都有大约50,000个客户,我的工作是建立一种方法来处理每周所有50,000个客户的发票脚本,因此脚本将创建一个新发票并在我们的mysql中对发票表执行插入查询数据库。
我担心的是,如果每周运行50,000个单独的cron作业会导致我们的服务器负载过重,crontab在导致性能问题之前能够处理哪种限制?
另外需要注意的是,crontab文件需要经常通过php脚本进行编辑,以便编辑和/或删除单个发票/ cronjobs。
基本上这是最好的路线吗?
答案 0 :(得分:3)
您应该有一个运行一次的Cron作业,并循环遍历50,000个客户。
我通常做的是从数据库中选择一个,处理它,将其标记为已完成,然后转到下一个。我在运行超过170秒之后让我的循环退出,并将整个月的每3分钟设置一个Cron作业 - 它会尽可能地通过它们。
答案 1 :(得分:1)
绝对不是!您可以安排一个cron作业来生成发票。此作业将获取客户列表并为其生成发票。如果一个作业生成发票需要大量时间,您可以考虑并行处理。