我希望脚本在白天的上午8点到晚上8点之间在30秒到1分钟之间随机运行。
有没有什么能阻止我在循环中以30-60秒的睡眠时间打开PHP脚本一次?然后检查时间是否在上午8点到晚上8点之间?
与Cron工作相比,这样做的缺点是什么? Cron作业可以随机运行吗?
答案 0 :(得分:4)
绝对max_execution_time可以阻止你(如果你的托管不允许你将它设置为无穷大)。睡眠时间没有考虑在内,但一段时间后仍然可以达到极限。
答案 1 :(得分:3)
缺点是,它们永远存在。如果它失败了,你可能不会立刻意识到它,如果你错误地构建它,它会消耗很多内存和cpu而不会释放它。使用cronjobs时,您可以确定它会在每次需要时开始清洁和新鲜的过程。
附加:设置一个cronjob太容易了,为什么不呢?
0,30 8-18 * * * php myscript.php
答案 2 :(得分:2)
你可以在php中实现这样一个持久的方案。它工作(假设你从命令行使用PHP ...)。唯一可能是次要缺点的是,在发生故障时无法恢复。使用cron作业时会有所不同:只需启动一个新进程。然而,这显然引入了其他风险,因此没有“更好”的方式。
Cron无法在随机时间启动进程。但是,您可以按固定的时间间隔开始您的过程,并使用随机长度的初始睡眠命令。这应该具有相同的效果。