index.php 当前队列情况
$redis=new Redis(); $redis->connect(‘127.0.0.1‘); $ret=$redis->lRange(‘test‘,1,1000); var_dump($ret);
push.php 入队
$redis=new Redis(); $redis->connect(‘127.0.0.1‘); for($i=0;$i<50;$i++){ $redis->lPush(‘test‘,$i); } echo ‘<script>window.setTimeout(function(){location.href="http://localhost/mq/";},2000);</script>‘; ob_flush();flush(); //不缓冲 file_get_contents(‘http://localhost/mq/pop.php‘);
pop.php 出队
set_time_limit(0); $redis=new Redis(); $redis->connect(‘127.0.0.1‘); while(true){ $ret=$redis->lPop(‘test‘); if($ret!==false){ echo $ret.‘<br>‘; ob_flush();flush(); //不缓冲 sleep(1); } else{ exit(‘--------end--------‘); } }
执行push.php插入队列并调用pop.php处理队列。
2秒以后自动转到index.php,无需等待任务处理完毕。
即使关闭浏览器重新打开index.php,依然可以看见队列一直在后台处理。
时间: 2024-10-08 11:04:06