redis php 队列开发
来源:互联网 发布:知乎必读书单 编辑:程序博客网 时间:2024/06/06 04:00
目前使用的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");
functionsignal($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";
其中有几个关键点记录一下
//阻塞获取,默认等待3秒,如果没有那么循环一次
使用此方式可以防止快速多次扫描redis
if(function_exists("pcntl_signal"))
{