在非高峰期间执行一些大型任务?

时间:2011-07-07 23:27:40

标签: php cpu-usage crontab

背景

在我们的一个项目中,我们需要偶尔运行一些大型任务,例如生成报告,发送通知电子邮件的数量。有时,当运行如此庞大的任务时,它会导致明显的延迟。所以我们正在考虑一种可能的解决方案。

一些想法

  1. 设置crontab以每10分钟运行一次后端脚本。
  2. 收集cpu使用信息,我找到http://phpsysinfo.sourceforge.net/phpsysinfo/index.php?disp=dynamic,但我不确定是否有更好的方法?
  3. 如果连续使用率低于特定值,或者队列中的第一个任务到达截止日期,则脚本将从队列中获取一定数量的任务并运行。
  4. 有大量不同类型的任务:例如,

    1. 用户可以请求某种类型的报告
    2. 通知电子邮件
    3. 清理数据库中的数据
    4. ...
    5. 我想知道这个想法是否值得尝试? 有什么问题,还是有其他更好的解决方案?

1 个答案:

答案 0 :(得分:1)

如果你正在运行一天24小时都需要访问的任何东西(比如一个国际使用的网站),这可以解决问题,但是很困难。

您可能希望复制数据库,然后运行繁重的查询 - 或调查一种形式的数据仓库。

What is a data warehouse?