【发布时间】:2010-10-12 09:34:32
【问题描述】:
我有一个特殊的情况,我需要查询一个服务来获取每天特定时间的 n 个用户的信息。问题是,如果我一次完成这一切,它会使服务脱机/崩溃。
所以要克服这个问题,最好每 10 秒左右为 x 个用户运行一次,直到 x = n 然后停止。
我可以设置 1 个每天运行的 cron 脚本和另一个每 10 秒运行一次的脚本。例如,每日脚本会将数据库中的值设置为 1(“开始查询”)(默认值为 0 表示关闭),然后第二个脚本(每 10 秒运行一次)检查该数据库值是否为 1。设置为 true 然后遍历用户一次查询服务 x 个用户并增加同一个 DB 表中的另一列以跟踪它在列表中的位置。
这个解决方案的问题(在我看来很好)是每 10 秒运行的第二个脚本每次都必须查询数据库,以确定“开始查询”设置是否设置为 1。这可能是一个相当处理器重的。谁有更好的解决方案?
注意:代码是用 PHP 编写的 - 由于服务器上 php 脚本的执行时间最长,因此无法使用睡眠
我在 python 中同样可以做到这一点,cgi 脚本是否有最大执行限制?
【问题讨论】:
-
根据您的操作系统,可能不包括睡眠时间:*.com/questions/740954/…