我有这个邮件脚本,我必须运行几次。要启动该脚本,我将使用cron,但该脚本必须再运行2到3次(间隔一个小时)。
做这件事最好的方法是什么?要使用一个小时的睡眠命令,或者在脚本的末尾,放置一些代码,以便脚本将创建一个新的cron作业,以便在一个小时后自动运行它?
谢谢
发布于 2009-06-25 15:37:57
除非在内存中保持脚本运行可以节省一些成本,否则最好使用cron根据需要每小时调用一次。
0 0-2 * * * /usr/local/bin/mail-script.php您可以使用-语法或逗号语法选择多个小时:
0 0,1,2,3 * * * /usr/local/bin/mail-script.php如果它需要维护某种形式的状态,请使用临时文件来保存保存的状态。
执行以下操作:
> man 5 crontab查看您的*nix是否处理上述情况。
最后,除非你知道脚本只需要运行2-3次,否则你最好把关于是否“运行”的逻辑放在PHP脚本本身中,然后每小时运行一次。
发布于 2009-06-25 16:43:57
使用sleep()的一个优点是它可以更好地移植。例如,在我使用的许多系统上,不允许用户拥有自己的cron作业-因此编写自己的计时器可能是一个优势。
sleep()的另一种选择是使用SIGALRM (这样脚本就可以捕获中断并在某个时间间隔执行代码-当该中断被抛出时)。
我的意思是,我会推荐使用cron --但是这里有一些替代方案!
发布于 2009-06-25 15:37:14
我不确定哪种方法(休眠一个小时,或者从php创建cron作业)都是理想的,不管怎样,如果cron作业每小时运行一次,然后php脚本检查它是否应该运行呢?
https://stackoverflow.com/questions/1044606
复制相似问题