我有必须每n分钟执行一次的脚本. n分钟是动态的,因此我无法设置cron作业来调用脚本(在特定时间).
所以我所做的是我每隔n分钟将时间存储在数组中,以便执行脚本时,它将首先检查当前时间是否在数组中.如果在数组中找到它,它将继续执行,否则退出.
要执行脚本,我必须使用cron作业每分钟运行一次,以检查阵列中的时间.不幸的是,我的Web主机只允许5分钟作为最小间隔.因此,每次调用脚本时,我都会检查是否在数组中找到了$current_time和$current_time(4 * 60)// 4分钟之间的值.如果是的话,并且如果需要的话,我使用time_sleep_until来延迟脚本,直到时间达到数组中的值为止.
因此,如果我的脚本在10:05执行,并且在数组中找到的值为10:06,则我让脚本休眠直到10:06,然后脚本才能继续执行.但是,如果睡眠时间超过一分钟左右,我就会离开MysqL服务器.
我该如何预防呢?还是有更好的方法来做到这一点?
谢谢!
最佳答案
有几个选择,我不知道哪个更好.
原文链接:https://www.f2er.com/mysql/532139.html首先,请确保您的脚本可与CLI一起使用,然后在分钟后使用http://www.php.net/exec函数(如果您的主机允许)调用它.
第二,设置脚本,使用可能的哈希作为键,并在分钟结束后使用标头重定向,这将称为脚本全新,因此建立了新的MysqL连接.
第三个选项是像在两个脚本中一样设置脚本,除了在计算机上设置一个计划任务/ cron作业以打开该页面(该页面必须位于webroot中)并每分钟或根据需要调用它之外.这不是固定的方法,但是取决于计算机的数量.
第四,类似于第三,但是使用免费的cron作业托管服务,例如:http://www.onlinecronjobs.com/en
希望能有所帮助.如果我想到其他选择,我将进行更新.