2012-07-29 142 views
2

我想要一个脚本,在上午8点到晚上8点之间,在30秒到1分钟之间随机运行。PHP睡眠与Cron-job

有没有什么东西阻止我从一个循环的30-60秒睡眠中打开一个PHP脚本?然后检查时间是在上午8点到晚上8点之间?

与Cron工作相比,这样做的缺点是什么?克隆职位可以随机运行吗?

回答

2

你可以在php中实现这样一个持久的方案。它的工作原理(只要你使用命令行中的php ...)。唯一可能造成轻微缺点的是在发生故障时没有恢复。这在使用cron作业时会有所不同:只需启动一个新的进程即可。然而,这显然会带来其他风险,所以没有更好的方法。

Cron无法在随机时间启动进程。但是,您可以按固定的时间间隔启动进程并使用随机长度的初始睡眠命令。这应该有同样的效果。

2

缺点是,他们永远运行。如果它失败了,你可能不会马上意识到它,如果你错误地构建它,它会消耗大量的内存和CPU而不释放它。在使用cronjob时,您可以确定,每次需要时它都会启动一个干净而新鲜的过程。

附加说明:这很容易设置一个cronjob,所以为什么不呢?

0,30 8-18 * * * php myscript.php 
+0

谢谢国王,答案是一样好阿卡斯卡,但想给答案800而不是26,000 :) – 2012-07-29 21:32:12

4

绝对max_execution_time可以阻止你(如果你的主机不让你把它设置为无穷大)。睡眠时间没有考虑在内,但在一段时间后仍然可以达到极限。