我有一个PHP脚本作为cron作业,每5分钟运行一次,在脚本中,它会对数据库进行查询并循环记录:
$results = DB::query("SELECT id FROM category");
foreach ($results as $row) {
// process the data, save data the a local file or database
// should I have Sleep here?
}
我应该在循环结束时添加睡眠吗?因为我想知道我是否不在那里打个电话,服务器(也是一个网络服务器)在这个PHP运行时会被捆绑? (在PHP脚本运行时,服务器还需要处理其他请求)
答案 0 :(得分:0)
而不是添加一个睡眠,正如评论中的@MarkBaker所提到的仍然保留内存和记录锁定,考虑将你的cron作业打包成更小的工作。
每个cronjob只需执行一次检查(删除旧会话,删除过期,不活动的用户等等。)
这将使服务器保持活力,同时仍然完成所有工作。