tp5 队列 supervisor

Linux上安装 think-queue


请先进入到框架的根目录再运行 根据thinkphp版本的不同选择不同的think-queue
(https://github.com/top-think/think-queue/tree/v1.1.6)
composer require topthink/think-queue


2.查看是否安装成功


php think queue:work -h


3.查看配置文件


配置文件在配置文件位于 application/extra/queue.php
return [ // 'connector' => 'Sync' 'connector' => 'Database', // 数据库驱动 'expire' => 60, // 任务的过期时间,默认为60秒; 若要禁用,则设置为 null 'default' => 'default', // 默认的队列名称 'table' => 'tp5_jobs', // 存储消息的表名,不带前缀 'dsn' => [], ];


4.在控制器中添加一个方法


控制器内引入think\Queue;
public function queueText(){ queue:push('app/jobs/index'(推送的队列),携带的参数); }


5.创建推送的队列 创建一个app/jobs/index.php

namespace app\jobs; use think\queue\Job; use think\Controller; class index extends Controller { public function fire(Job $job, $data) { //执行操作,比如将数据存入数据库等 $job->delete(); } public function failed($data) { // ...任务达到最大重试次数后,失败了 } }

6.监听并执行


php think queue:listen


7.ubuntu安装后台进程管理利器: supervisor


apt-get install supervisor


8.配置


默认加载 /etc/supervisor/conf.d/
目录下的所有.conf配置文件。再次文件下创建app.conf



[supervisord] nodaemon=true #program:后面是任务名称 [program:GameAsync] startsecs=10 redirect_stderr=true directory=/data/wwwroot/nutspoker/ command=/usr/local/php/bin/php think queue:listen


  • 重启supervisor服务 service supervisor restart

8.命令使用


#查看帮助 supervisorctl -h
#开启GameAsync任务
supervisorctl start GameAsync
#停止GameAsync任务
supervisorctl stop GameAsync
#重启GameAsync任务
supervisorctl restart GameAsync



评论 抢沙发

表情