脚本运行时太长

时间:2015-10-11 05:13:32

标签: php mysql

我制作了一个类似的程序:

  1. 从数据库中获取现有成员列表
  2. 通过指向论坛帖子的每个成员“链接”,它使用一些xpath注释来获取“日期”;此日期指的是上次更新时间
  3. 然后将该日期与存储在该成员下的日期进行比较,以查看是否需要对该成员进行更新;如果需要更新,它将触发另一个脚本运行的布尔值
  4. 现在我需要每小时运行一次这个脚本,因为它旨在检查成员论坛帖子中的特定信息。

    但是目前有80多个用户,这个脚本需要很长时间才能运行;随着时间的推移,这个数字可能会增加所以这是一个问题,因为它永远不会完全完成脚本(我甚至将exec时间设置为0,但这没有帮助。)

    我认为解决这个问题的最佳方法是每小时多次运行此脚本,并以某种方式一次检查30个唯一成员。

    但我正在努力想出一个干净的方法来做到这一点。任何人都可以帮助我或建议一个更好的方法来处理这么多成员吗?

1 个答案:

答案 0 :(得分:0)

我添加了一个名为update_status的新数据列。这可以标记为“na”,“ur”或“nu”(不适用,需要更新或不更新)。

我在脚本上检查了30个成员,平均花了1分40秒,所以我每隔4分钟运行一次该脚本是安全的。

它只使用'na'的update_status抓取成员,所以它通过成员的方式工作,直到不再剩下,然后最终更新程序运行。

它标记需要使用'ur'更新的成员,而不需要它的成员会标记为'nu'。

然后当updater在一小时运行一次时,它只检查需要更新的成员,然后运行全局更新以将所有成员重置为'na'。

这不是一个完美的答案,但它确实给了我一个未来的想法,现在可以正常工作:)