代码之家  ›  专栏  ›  技术社区  ›  AntonioCS

使用sleep()或cron作业

  •  2
  • AntonioCS  · 技术社区  · 15 年前

    我有这个邮件脚本,我必须运行几次。 要启动脚本,我将使用cron,但脚本必须再运行2到3次(间隔一小时)。

    最好的方法是什么? 要在一小时内使用sleep命令,或者在脚本结束时,放置一些代码,以便脚本将创建一个新的cron作业,在一小时后自行运行它?

    谢谢

    4 回复  |  直到 15 年前
        1
  •  7
  •   razzed    15 年前

    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脚本本身中使用关于是否“运行”的逻辑,然后每小时运行一次。

        2
  •  2
  •   poundifdef    15 年前

    sleep()的另一种替代方法可能是使用 SIGALRM (因此,您的脚本捕获一个中断,并在抛出该中断时以特定的间隔执行代码。)

    我的意思是,我建议使用cron-但这里有一些替代方案!

        3
  •  0
  •   Colin Pickard    15 年前

    我不确定这两种方法(睡一个小时,或者从php创建cron作业)是否理想,那么一个每小时运行一次的cron作业怎么样,然后您的php脚本检查它是否应该运行?

        4
  •  0
  •   Josh Weatherly    15 年前

    为什么不设置cron标准,让它触发那些特定的时间?Cron在这方面非常灵活。

    更新你的问题,当你想它火了,我可以举一个例子。