PHP中利用睡眠函数实现时间任务实例共享

PHP中利用睡眠函数实现时间任务实例共享
在一些程序中,有一些特殊的函数需要用于定时执行。如果一个熟悉Linux的朋友会说这不容易,他会直接参与计划任务吗将crontab实现快这是真的,是可以做到的,但要事先知道具体的执行时间,然后写上计划好的任务,比如早上二点,早上七点,或者每天早上630点,等等。

有时,然而,我们无法预测这个时间和执行时间由程序动态生成的,那么我们可以执行一些程序片段的动态生成的时间之后,所以我们不能使用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

tag:函数实现实例时间电脑软件php

相关内容