easyswoole如何实现Redis队列消费/自定义进程

定义消费进程逻辑

addTick(500,function (){
            if(!$this->isRun){
                $this->isRun = true;
                $redis = new \redis();//此处为伪代码,请自己建立连接或者维护redis连接
                while (true){
                    try{
                        $task = $redis->lPop('task_list');
                        if($task){
                            // do you task
                        }else{
                            break;
                        }
                    }catch (\Throwable $throwable){
                        break;
                    }
                }
                $this->isRun = false;
            }
            var_dump($this->getProcessName().' task run check');
        });
    }
    public function onShutDown() { }
    public function onReceive(string $str, ...$args) { }
}

注册消费进程
在EasySwoole的全局事件中,注册消费进程。

setProcessName('ConsumerProcess'.$i);//设置进程名称
        Manager::getInstance()->addProcess(new Consumer ($processConfig));
    }
}

你可能感兴趣的:(easyswoole如何实现Redis队列消费/自定义进程)