澳门太阳集团登录网址PHP中利用sleep函数实现定时执行功能实现代码_php技巧_脚本之家

在有个别推断的网站中,如若大家须要做一个定时实践的功效,比方有大器晚成道题,在十秒以内要产生,不然突显“您已过期”,要是做到,则跳转到下大器晚成道题上面,而那中档有多个十秒的间歇,那样的成效是何许贯彻的呢?

在一些程序中,有大器晚成对独具一格的法力供给动用定期奉行,若是纯熟Linux的爱侣一定会说那不是轻便吗,间接来个布置任务crontab不久兑现了呢?那着实是足以实现,但必需是提前领略具体的实行时间,然后技巧写到布置职责里去。比方深夜两点,早晨七点,也许每日午夜六点贰拾五分等等。

在PHP中,有一个sleep函数,大约意思是程序施行蒙受sleep函数时暂停N秒后持续往下施行。如sleep意思正是前后相继自上往下进行,际遇sleep语句后虎头蛇尾十秒,然后继续往下施行。函数括号内的参数是三个数值,代表暂停时间值,单位秒。请看上边生机勃勃段代码:

而是临时,那一个日子大家可望不可即预言,而实施时间是先后动态变化的。然后在动态变化的时刻后实行某些程序片段,这里就无法用Linux的crontab安排职务了,因为每趟推行的日子都以动态变化,而布署职分急需驾驭四个定死了的光阴。既然不能使用布署职分,那么就只能从程序本人搜索完结格局。

恐怕有些童鞋狠抓例的时候会说怎么小编的程序施行出错,提醒超时。出现这么些主题材料毫不慌,那是PHP暗中同意页面试行时间引致的,在PHP中私下认可实行页面时间是八十分钟,那对于平常程序够用了。但万风流洒脱您要做相符定期推行坚决守住就务须再底部申明设置下试行时间set_time_limit。0是代表不限制期限,单位是秒。

在PHP中,有三个sleep函数,大概意思是程序实践遭逢sleep函数时停顿N秒后三番五次往下试行。如sleep意思正是程序自上往下奉行,遭逢sleep语句后暂停十秒,然后继续往下实行。函数括号内的参数是一个数值,代表暂停时间值,单位秒。请看上面生龙活虎段代码

假如试行时间超越30秒,再进行操作记得要再次连接MYSQL,不然奉行无效!!!原因是实施时间过长今后数据库连接恐怕断开难题,也就不能够读到数据库消息!

'; // 暂停十秒sleep; // 输出时间戳echo time(); // out:1338088790

去操作一下啊,为投机的实例添叁个抛锚的效果与利益,然后再往下举办履行。

如上程序执行结果是复制代码
代码如下:13380887801338088790大家来分析下施行进度,第一步是打字与印刷当前时间戳1338088780,然后暂停十秒,再打字与印刷时间戳。由于程序是等待了十秒然后重新打字与印刷时间戳,那么正是终极一遍的时光戳肯定要比第四回打字与印刷的年华戳多十分钟,结果最终一遍的大运戳是1338088790。

如上例子,大家只用了一回sleep函数,页面中得以随便使用sleep()函数。请看以下代码:

'; // 暂停十秒sleep; // 输出第二次时间戳echo time(); // out: 1338088790echo '
'; // 暂停二十秒钟sleep; // 输出第三次时间戳echo time(); // out: 1338088810

上述程序施行结果是复制代码
代码如下:133808878013380887901338088810以上代码实践进度:第生机勃勃,打印第三遍时间戳13380887七十七次之,暂停十秒第三,打字与印刷第三遍时间戳
1338088790,是第一回时间戳加上十秒后的总量第四,暂停三十秒第五,打字与印刷第三回时间戳
1338088810,是第二次时间戳1338088790加上四十秒后的总和。

页面中冒出四回sleep,第4回是十秒,第三次三十秒。由此得出上述实例总共实施八十秒。页面中往往不由自主sleep()函数时为拉长实际不是覆盖前边的代码。

那什么构成sleep准时实行动态变化时间的代码呢?请看以下代码:

'; // 动态生成时间 范围在今天下午六点到晚上零点前的任意时间$datetime = date.' '.rand.':'.rand.':'.rand; // 2012-05-27 19:20:00 // 算得时间戳$a = strtotime; // 算得时间差$reduce = $a-time(); // sleep等待sleep; // 执行到时间后执行的代码块echo date; // out:2012-05-27 19:20:00

如上代码输出:复制代码
代码如下:二零一一-05-27 14:58:00二〇一三-05-27
19:20:00剖析:初始打印当前时刻,然后轻巧算出程序今后实行时间 二〇一一-05-27
19:20:00,由于sleep接纳参数是二个以秒为单位的一个数值,所以先把变化的小时改动为时间戳然后再用时间戳减去当前岁月戳得出二个时间差,再sleep就能够达到程序在猖獗生成时间实施某个语句到达准期推行职能。这里注意必需算的二个以秒为单位的光阴差,假若无法算出秒差就无奈使用sleep函数成效。

终极,大概有些童鞋抓好例的时候会说怎么笔者的程序实施出错,提醒超时。现身那几个标题毫不慌,那是PHP默许页面实践时间招致的,在PHP中暗中认可试行页面时间是七十分钟,那对于平常程序够用了。但只要您要做相符准期实施效果就必得再尾部注明设置下进行时间set_time_limit。0是代表不限制期限,单位是秒。最终整爱慕出代码:

发表评论

电子邮件地址不会被公开。 必填项已用*标注