繁重的处理导致网站无法使用

时间:2013-11-08 10:40:36

标签: php mysql apache cron

每月一次,我们必须生成并发送1万张PDF账单。这是由一个cron工作完成的。它需要大约2.5小时才能完成,但问题是在此期间网站已关闭。有没有办法运行cron工作,仍然能够保持网站?我们没有资源在专用服务器上执行此操作。

我们有一个16核专用的php服务器,1个专用的mysql服务器。我们在php中调用我们用c ++编写的程序来制作每个pdf并从php发送它作为电子邮件。

我尝试在代之间添加sleep,这似乎没有帮助。

  

cron进程如何?你喜欢现在开始生成并持续发送10000以下2.5小时吗?

不,cron将在2.5小时后停止。我们将在第二天晚上再次重新运行它,直到它全部被发送出去。主要是它不需要

1 个答案:

答案 0 :(得分:2)

您应首先确定流程的瓶颈是什么(网站出现故障的原因?):数据库或CPU或网络?

  • 如果是数据库,则应创建视图,复制数据库并在此数据库上运行pdf批处理。您还可以使用db上的索引来增强您的pdf创建。
  • 如果是CPU,您可以尝试将缓存系统添加到您的网站(文件缓存或使用memcach)。
  • 如果是网络,您可以检查unix系统上的ulimit,它允许打开最大文件大小。