PHP中利用睡眠函数实现时间任务实例共享
有时,然而,我们无法预测这个时间和执行时间由程序动态生成的,那么我们可以执行一些程序片段的动态生成的时间之后,所以我们不能使用linux的crontab计划任务,因为执行时间是动态生成的,和计划的任务需要知道死时间。既然你不能使用计划任务,你只能从程序本身找到实现的方法。
在PHP中,有一个睡眠功能,这可能意味着程序后睡眠功能暂停N秒执行。如睡眠(10)意味着从上到下的程序,睡眠(10)表十秒后暂停,然后继续执行。在函数的括号参数是一个数值,代表停顿的时间价值,第二单元。请看下面的代码
复制代码代码如下所示:
< PHP
*睡眠功能的使用
*琼台博客
* /
当前程序时间戳的输出
回声(时间);输出:1338088780
回声';
挂起 10
睡眠(10);
输出时间戳
回声(时间);输出:1338088790
上述程序执行的结果是
复制代码代码如下所示:
十三亿三千八百零八万八千七百八十
十三亿三千八百零八万八千七百九十
我们解释的实施过程中,第一步是打印当前时间戳1338088780,然后停顿十秒,然后打印时间戳。由于程序是等待10秒,然后再重新打印一个时间戳,所以时间戳是最后的时间必须比第一次打印时间十秒,对最后1338088790的时间戳。
在上面的示例中,我们只使用一个睡眠函数,而睡眠()函数可以在不受页面限制的情况下使用。请查看下面的代码:
复制代码代码如下所示:
< PHP
*睡眠功能的使用
*琼台博客
* /
第一次印章输出
回声(时间);输出:1338088780
回声';
挂起 10
睡眠(10);
第二输出时间戳
回声(时间);输出:1338088790
回声';
/暂停二十秒
睡眠(20);
第三输出时间戳
回声(时间);输出:1338088810
上述程序执行的结果是
复制代码代码如下:1338088780
十三亿三千八百零八万八千七百九十
十三亿三千八百零八万八千八百一十
上述代码的执行:
首先,打印第一次邮票1338088780。
二秒的停顿
第三,打印第二次时间戳1338088790,是第一个时间戳加上十秒后的总和。
第四,暂停二十秒。
第五,第三次邮票1338088810被打印,这是第二次邮票1338088790加二十秒之和。
两个睡眠页面,第一次是第二秒二十秒。从这一点来看,上面的例子总共执行了三十秒。睡眠()函数在页面中多次出现,而不是覆盖前面的代码。
代码如何动态地生成具有睡眠时间的时间请看下面的代码:
复制代码代码如下所示:
< PHP
*睡眠功能定期执行动态生成时间代码。
*琼台博客
* /
当前时间
回声号('y-m-d H:我:'); / /:2012-05-27 14:58:00
回声';
动态生成时间范围在今天下午六点到午夜前的任何时候。
datetime日期('y-m-d美元=),兰德('18,23 ')'。兰德('0,59 ')'。兰德('0,59 '); / / 2012-05-27 19:20:00
作为时间戳
美元= strtotime($ DateTime);
是时间差
为减少=全日制(美元);
等待睡眠
睡眠(减少);
执行后的时间段的代码块
回声号('y-m-d H:我:'); / /:2012-05-27 19:20:00
上述代码输出:
复制代码代码如下:2012-05-27 14:58:00
2012-05-27 19:20:00
分析:打印当前时间,然后计算2012-05-27随机反19:20:00程序执行的时间,因为睡眠是一种在数秒接受参数,所以需要时间来产生,然后转换为时间戳的时间戳减去的时间差,当前时间戳,然后睡到该程序中的一些随机的时间的报表实现定时性能的执行。有一个时间差,必须在几秒钟内计数,和睡眠功能不能如果第二差无法计算的应用。
最后,有些童鞋可能会说我的程序出错了,提示超时。这是PHP的默认页面执行时间造成的。在PHP页面,默认的执行时间是三十秒,这是足够的通用程序。但如果你想做类似的定时执行,你必须树立set_time_limit执行时间(0)。0,代表不限,单位是秒。在整个结束,整个代码贴。
复制代码代码如下所示:
< PHP
*睡眠功能定期执行动态生成时间代码。
*琼台博客
* /
设置页面执行时间,否则会出现超时错误。
(0)set_time_limit;
当前时间
回声号('y-m-d H:我:'); / /:2012-05-27 14:58:00
动态生成时间范围在今天下午六点到午夜前的任何时候。
datetime日期('y-m-d美元=),兰德('18,23 ')'。兰德('0,59 ')'。兰德('0,59 '); / / 2012-05-27 19:20:00
作为时间戳
美元= strtotime($ DateTime);
是时间差
为减少=全日制(美元);
等待睡眠
睡眠(减少);
执行后的时间段的代码块
回声号('y-m-d H:我:'); / /:2012-05-27 19:20:00