每5分钟执行一次PHP cron,但在15分钟后将一个函数置于睡眠状态

时间:2012-04-24 06:56:21

标签: php cron command-line-interface

我有一个每5分钟在cron上运行的PHP脚本。

*/5 * * * * /var/www/html/processMail.php

在脚本中有一个我想每15分钟执行一次的函数,因此该函数将处于睡眠模式,但脚本的其余部分将每5分钟处理一次。

这个疯狂的想法会起作用吗?

2 个答案:

答案 0 :(得分:4)

  

这个疯狂的想法会起作用吗?

不,不会。每个15分钟的功能 - 即使你设法等待15分钟 - 每5分钟执行一次 - 所以15分钟的功能每5分钟执行一次。而是创建第二个脚本,每15分钟执行一次或添加一个参数:

*/5 * * * * /var/www/html/processMail.php --mins=5
*/15 * * * * /var/www/html/processMail.php --mins=15

然后使用该功能来解析commandline-parameters in PHP(和getopt)以进行相应处理。另见the section about commandline usage in the PHP manual

答案 1 :(得分:1)

您可以将迭代器保存在文件或数据库中,并在每次运行后将其递增,这样您只能在脚本运行3次后运行一次。

然而,一个更好的解决方案就是编写另一个脚本并每15分钟运行一次。