【发布时间】:2011-05-04 05:20:07
【问题描述】:
我有一个 php 脚本作为 cron 作业运行,它执行一组简单的任务,这些任务为数据库中的每个用户循环,大约需要 30 分钟才能完成。此过程每小时开始一次,并且需要尽可能快速和高效。我遇到的问题就像任何服务器脚本一样,执行时间各不相同,我需要找出最佳的 cron 时间设置。
如果我每分钟运行一次 cron,我需要在该分钟结束前 20 秒停止脚本的最后一个循环,以确保当前循环及时完成。在一个小时的过程中,这会浪费很多时间。
我想知道简单地删除 php 执行时间限制并每小时运行一次脚本并让它运行完成是否是一个坏主意......这是一个坏主意吗?
【问题讨论】:
-
您的 cron 作业是调用运行 PHP 的网站还是从命令行使用 PHP?我不完全理解第二段——你为什么停止处理并每分钟重新开始?
-
我想如果你解释一下工作需要做什么,你可能会在这里得到一些更有成效的答案。可能有更有效的方法来做到这一点。
-
如果使用 wget 调用长时间运行的 cron 作业,请考虑使用 -t 1 将尝试次数设置为 1,以便仅调用一次。