维护脚本使加载变慢

时间:2011-02-08 13:04:35

标签: php mysql

每次用户访问主页时,我都会在网站上运行一个脚本。该脚本将遍历数据库中的每一行,并检查其日期是否已过期,如果为true则将其归档。但是,由于它有很多行,因此加载主页时需要一些时间(如6秒)。

首先,我建议使用cronjob来完成任务,但我的老板提出了这个想法,但我离题了...

我的问题是,是否可以并行运行脚本,这样,在脚本运行时,主页可以继续加载。另请注意,主页显示数据库中的数据,因此在主页完成加载之前执行脚本非常重要

2 个答案:

答案 0 :(得分:5)

如果你每次得到一个访问者都需要运行一个维护脚本,那么你的站点就会非常破碎,更好的办法就是修复系统,这样就不需要每秒维护一次

答案 1 :(得分:0)

可以并行运行脚本,这样,当脚本也在运行时,主页可以继续加载。

是。您可以异步调用维护脚本。通过在维护脚本中设置ignore_user_abort,然后从主页打开该脚本的套接字,然后立即关闭它。

但是,如果您仍然希望等到维护脚本在加载主页之前完成它的工作,那么实际上没有必要这样做。无论如何,你仍然需要等待这6秒钟。

因此,最好的方法是检查为什么每次都需要运行此脚本,并尝试对其进行优化。

例如,如果您只需要设置所有过期的项目,则只需使用单个查询,而不是单独检查所有行。例如。 (UPDATE表SET expired = 1 WHERE expiry_date