首頁  >  文章  >  後端開發  >  php定时执行问题,sleep后获取参数问题

php定时执行问题,sleep后获取参数问题

WBOY
WBOY原創
2016-06-06 20:12:541089瀏覽

项目中需要用到定时执行,但是定时的时间是一个变量参数,不是固定的

开始考虑使用crontab来实现,但是时间参数没办法自定义,还需要获得一个传递的ID来执行sleep后的程序

使用php中的sleep函数碰到一个问题,在sleep之前GET或者POST过来的参数,在sleep之后获取不到。

<code>ignore_user_abort(); //即使Client断开(如关掉浏览器),PHP脚本也可以继续执行.  
set_time_limit(0); // 执行时间为无限制,php默认执行时间是30秒,可以让程序无限制的执行下去      
$interval=$_GET['interval']; // 接收$_GET参数
$id = $_GET['id']; //这里是请求触发的时候传递过来的ID,在sleep后需要用到
flush();         
sleep($interval); // 按设置的时间等待执行 */ 
/*** sleep后需要用到上面的$id,来执行其他程序,测试后发现$id获取不到。为空**/</code>

有知道的大神吗?或者提供一下其他的思路,谢谢了!

回复内容:

项目中需要用到定时执行,但是定时的时间是一个变量参数,不是固定的

开始考虑使用crontab来实现,但是时间参数没办法自定义,还需要获得一个传递的ID来执行sleep后的程序

使用php中的sleep函数碰到一个问题,在sleep之前GET或者POST过来的参数,在sleep之后获取不到。

<code>ignore_user_abort(); //即使Client断开(如关掉浏览器),PHP脚本也可以继续执行.  
set_time_limit(0); // 执行时间为无限制,php默认执行时间是30秒,可以让程序无限制的执行下去      
$interval=$_GET['interval']; // 接收$_GET参数
$id = $_GET['id']; //这里是请求触发的时候传递过来的ID,在sleep后需要用到
flush();         
sleep($interval); // 按设置的时间等待执行 */ 
/*** sleep后需要用到上面的$id,来执行其他程序,测试后发现$id获取不到。为空**/</code>

有知道的大神吗?或者提供一下其他的思路,谢谢了!

把flush注释掉

测试可以执行

<code class="php">ignore_user_abort(); //即使Client断开(如关掉浏览器),PHP脚本也可以继续执行.  
set_time_limit(0); // 执行时间为无限制,php默认执行时间是30秒,可以让程序无限制的执行下去      

// params
$interval=$_GET['interval']; // 接收$_GET参数
$id = $_GET['id']; //这里是请求触发的时候传递过来的ID,在sleep后需要用到

flush();         
sleep($interval);

echo $id;</code>
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn