我的编程空间,编程开发者的网络收藏夹
学习永远不晚

thinkphp6 使用 topthink/think-queue 配置守护进程消息队列

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

thinkphp6 使用 topthink/think-queue 配置守护进程消息队列

当前演示使用宝塔面板

安装composer require topthink/think-queue

配置config/queue.php

return [ //驱动类型,可选择 sync(默认):同步执行,database:数据库驱动,redis:Redis驱动    'default'     => 'redis',     'connections' => [        'sync'     => [            'type' => 'sync',        ],        'database' => [            'type'       => 'database',            'queue'      => 'default',            'table'      => 'jobs',            'connection' => null,        ],        'redis'    => [            'type'       => 'redis',            'queue'      => 'default',            'host'       => '127.0.0.1',            'port'       => 6379,            'password'   => '',            'select'     => 0,            'timeout'    => 0,            'persistent' => false,        ],    ],    'failed'      => [        'type'  => 'none',        'table' => 'failed_jobs',    ],];

添加消息入队

namespace app\controller;use app\BaseController;use app\job\Test;use think\facade\Queue;class Index extends BaseController{    public function work()    {        // 参数        $data = [            'id' => 1,            'username' => 'zhagnsan',            'time' => time(),            'type' => 1        ];        $name = 'testQueue';        $queue = Queue::push(Test::class, $data, $name);        if($queue != false){            echo '加入队列成功';        }else{            echo '加入队列失败';        }    }}

创建job/Test消耗队列

namespace app\job;use think\facade\Log;use think\queue\Job;class Test{    public function fire(Job $job, $data)    {        $isDoJob = $this->doJob($data);        if($isDoJob){            $job->delete();        }else{            $attempts = $job->attempts();            if($attempts < 5){                $job->release(2);            }        }    }    public function failed($data)    {        Log::error('消息队列达到最大重复执行次数后失败');    }    public function doJob($data)    {        if($data['type'] == 1){            echo '消息队列执行成功';            Log::info('执行成功');            return true;        }else{            echo '消息队列执行失败';            Log::info('执行失败');            return false;        }    }}

命令调用
php think queue:work --queue testQueue

效果图
在这里插入图片描述

宝塔安装Supervisor
在这里插入图片描述
安装成功后添加守护进程
在这里插入图片描述
启动命令直接使用php think queue:work --queue testQueue,其他根据自己项目情况填写

报错:The Process class relies on proc_open, which is not available on your PHP installation
解决办法:是因为禁用了proc_open函数导致的报错,在php.ini中删掉这个函数重启PHP即可

来源地址:https://blog.csdn.net/qq_44747508/article/details/129562611

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

thinkphp6 使用 topthink/think-queue 配置守护进程消息队列

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录