【发布时间】:2011-03-19 08:16:30
【问题描述】:
我有必须在每 n 分钟后执行的脚本。 n 分钟是动态的,因此我无法设置 cron 作业来调用脚本(在特定时间)。
所以我所做的是将每 n 分钟后的时间存储在一个数组中,以便在执行脚本时,它会首先检查当前时间是否在数组中。如果在数组中找到,则继续执行,否则退出。
要执行脚本,我必须使用 cron 作业每分钟运行一次以检查数组中的时间。不幸的是,我的虚拟主机只允许 5 分钟作为最短间隔。所以每次调用脚本时,我都会检查是否在数组中找到$current_time 和$current_time + (4*60) // 4 minutes 之间的值。如果是,并且如果需要,我使用time_sleep_until 来延迟脚本,直到时间达到在数组中找到的值。
所以如果我的脚本在 10:05 执行并且在数组中找到的值为 10:06,我让脚本休眠到 10:06,然后继续执行。但是,如果睡眠时间超过一分钟左右,我会得到一个Mysql server gone away。
我怎样才能防止这种情况发生?还是有更好的方法来做到这一点?
谢谢!
【问题讨论】:
-
睡觉前断开连接,之后重新连接?
-
还没想到,试试看。谢谢!