1

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

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

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

cron进程如何?您喜欢现在开始并在接下来的 2.5 小时内连续生成并发送 10000 个吗?

不,cron 设置为在 2.5 小时后停止。我们将在第二天晚上再次运行它,直到它全部发送出去。大部分是不需要的

4

1 回答 1

2

您应该首先确定您的进程的瓶颈是什么(为什么网站关闭?):数据库或CPU或网络?

  • 如果是数据库,您应该创建一个视图来复制您的数据库并在此数据库上运行您的 pdf 批量创建。您还可以使用 db 上的索引来促进您的 pdf 创建。
  • 如果是 CPU,你可以尝试在你的网站上添加缓存系统(文件缓存或使用 memcach)。
  • 如果是网络,您可以检查 unix 系统上允许打开最大文件大小的 ulimit。
于 2013-11-08T10:50:04.143 回答