我有一个 PHP 脚本,每 5 分钟在 cron 上运行一次。
*/5 * * * * /var/www/html/processMail.php
在脚本内部有一个我想每 15 分钟执行一次的函数,因此该函数将处于睡眠模式,但脚本的其余部分将每 5 分钟处理一次。
这个疯狂的想法会奏效吗?如何奏效?
我有一个 PHP 脚本,每 5 分钟在 cron 上运行一次。
*/5 * * * * /var/www/html/processMail.php
在脚本内部有一个我想每 15 分钟执行一次的函数,因此该函数将处于睡眠模式,但脚本的其余部分将每 5 分钟处理一次。
这个疯狂的想法会奏效吗?如何奏效?
这个疯狂的想法会奏效吗?如何奏效?
不,不会的。每 15 分钟功能将 - 即使您设法等待 15 分钟 - 每 5 分钟执行一次 - 因此有效地每 5 分钟执行 15 分钟功能。而是创建一个每 15 分钟执行一次的第二个脚本或添加一个参数:
*/5 * * * * /var/www/html/processMail.php --mins=5
*/15 * * * * /var/www/html/processMail.php --mins=15
然后使用该功能解析PHP(和getopt
)中的命令行参数以进行相应的处理。另请参阅PHP 手册中有关命令行使用的部分。
您可以将迭代器保存在文件或数据库中,并在每次运行后递增,这样您只能在脚本运行的 3 次中运行一次。
但是,更好的解决方案是编写另一个脚本并每 15 分钟运行一次。