php time_sleep_until()和“ MySQL服务器已消失”

我有必须每n分钟执行一次的脚本. n分钟是动态的,因此我无法设置cron作业来调用脚本(在特定时间).

所以我所做的是我每隔n分钟将时间存储在数组中,以便执行脚本时,它将首先检查当前时间是否在数组中.如果在数组中找到它,它将继续执行,否则退出.

要执行脚本,我必须使用cron作业每分钟运行一次,以检查阵列中的时间.不幸的是,我的Web主机只允许5分钟作为最小间隔.因此,每次调用脚本时,我都会检查是否在数组中找到了$current_time和$current_time(4 * 60)// 4分钟之间的值.如果是的话,并且如果需要的话,我使用time_sleep_until来延迟脚本,直到时间达到数组中的值为止.

因此,如果我的脚本在10:05执行,并且在数组中找到的值为10:06,则我让脚本休眠直到10:06,然后脚本才能继续执行.但是,如果睡眠时间超过一分钟左右,我就会离开Mysql服务器.

我该如何预防呢?还是有更好的方法来做到这一点?

谢谢!

最佳答案
有几个选择,我不知道哪个更好.

首先,请确保您的脚本可与CLI一起使用,然后在分钟后使用http://www.php.net/exec函数(如果您的主机允许)调用它.

第二,设置脚本,使用可能的哈希作为键,并在分钟结束后使用标头重定向,这将称为脚本全新,因此建立了新的MySQL连接.

第三个选项是像在两个脚本中一样设置脚本,除了在计算机上设置一个计划任务/ cron作业以打开该页面(该页面必须位于webroot中)并每分钟或根据需要调用它之外.这不是固定的方法,但是取决于计算机的数量.

第四,类似于第三,但是使用免费的cron作业托管服务,例如:http://www.onlinecronjobs.com/en

希望能有所帮助.如果我想到其他选择,我将进行更新.

相关文章

在正式开始之前,我们先来看下 MySQL 服务器的配置和版本号信...
> [合辑地址:MySQL全面瓦解](https://www.cnblogs.c...
物理服务机的CPU、内存、存储设备、连接数等资源有限,某个时...
1 回顾 上一节我们详细讲解了如何对数据库进行分区操作,包括...
navicat查看某个表的所有字段的详细信息 navicat设计表只能一...
文章浏览阅读4.3k次。转载请把头部出处链接和尾部二维码一起...