安装yii-queue扩展
composer require --prefer-dist yiisoft/yii2-queue
注释:composer已配置全局变量,所以可以直接使用composer进行安装
配置
common/config/main.php 中配置,使用redis作为驱动
components中添加
'bootstrap' => [
'queue',
],
'redis' => [
'class' => 'yii\redis\Connection',
'hostname' => '127.0.0.1',
'port' => 6379,
'database' => 0,
],
'queue' => [
'class' => \yii\queue\redis\Queue::class,
//'class' => 'yii\queue\redis\Queue',
'as log' => \yii\queue\LogBehavior::class,//错误日志 默认为 console/runtime/logs/app.log
//'as log' => 'yii\queue\LogBehavior',// 日志
'redis' => 'redis', // 连接组件或它的配置
'channel' => 'queue', // Queue channel key
],
php删掉几个函数 proc_open,pcntl_signal,pcntl_signal_dispatch,pcntl_fork,pcntl_wait,pcntl_alarm
启动
方法一:
项目内启动
进入项目的根目录,执行下列命令:
yii queue/listen
方法二:
安装supervisord管理器
目录到网站目录:
启动命令:
/usr/bin/php /www/wwwroot/yii.zhoujiayou.com/yii queue/listen --verbose=1 --color=0
方法三:
阿里云安装命令:
yum install supervisor
卸载:
yum -y remove supervisor
linux环境下,进程的启动
配置:
进入/etc/supervisord.d
创建文件,
文件名需要以.ini结尾,假定文件名为queue.ini
文件内容为:
[program:yii-hy-queue-worker]
process_name=%(program_name)s_%(process_num)02d
command=/usr/bin/php /www/wwwroot/yii.zhoujiayou.com/yii queue/listen --verbose=1 --color=0
autostart=true
autorestart=true
user=root
numprocs=2
redirect_stderr=true
stdout_logfile=/www/wwwroot/yii.zhoujiayou.com/web/log/queueyii-queue-worker.log
或者
[program:yii-hy-queue-worker]
process_name=%(program_name)s_%(process_num)02d
command=/usr/bin/php /www/wwwroot/hy.saiminet.com/yii queue/listen --verbose=1 --color=0
autostart=true
autorestart=true
user=root
numprocs=2
redirect_stderr=true
stdout_logfile=/www/wwwroot/hy.saiminet.com/web/log/queueyii-queue-worker.log
启动进程
systemctl start supervisord
常用命令:
启动监听进程
yii queue/listen
yii queue/listen 5 //表示每隔5s监听一次队列
运行队列任务
yii queue/run //运行队列任务直到空,一般用于定时cron
查看队列状态
yii queue/info
队列开启:supervisord -c /etc/supervisor/supervisord.conf