您的位置:首页 > 数据库 > Redis

redis php 队列开发

2017-06-12 17:12 274 查看
目前使用的list实现的队列

其中有几个关键点记录一下

//阻塞获取,默认等待3秒,如果没有那么循环一次

    $result =
$model->brPop($QUEUENAME, 3);

使用此方式可以防止快速多次扫描redis

if(function_exists("pcntl_signal"))

{

   
declare(ticks = 1);

   
pcntl_signal(SIGTERM,"signal");

   
pcntl_signal(SIGINT,"signal");

   
pcntl_signal(SIGINT,"signal");

    function
signal($signo) {

       
global $RUNNING_FLAG;

           
switch ($signo) {

               
case SIGINT:

               
case SIGKILL:

               
case SIGTERM:

                   
if($RUNNING_FLAG){

                       
//第一次接收到,那么等执行完毕退出

                       
$RUNNING_FLAG=false;

                           
echo "first time close.. \r\n";

                   
}else{

                       
//第二次接收到,直接退出

                           
echo "shutdown ...\r\n";

            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: