listen queue 进程_thinkphp-queuer消息队列与superviso进程守护

本文介绍了如何在ThinkPHP6项目中使用think-queue结合Redis驱动搭建消息队列,并通过Supervisor进行进程守护。首先通过Composer安装依赖,然后配置queue.php,创建任务类并发布任务。接着,讲解了使用Supervisor安装、配置及管理队列进程的方法,包括启动、停止和监控。最后,提到了消息队列在执行失败后的处理机制。
摘要由CSDN通过智能技术生成

本文简单介绍消息队列的使用,以及在使用过程中的注意事项。

项目环境:thinkphp6.0.3 + think-queue3.0

1、使用 composer 安装 thinkphp6 与 think-queue

# 安装 thinkphp6

composer create-project topthink/think 6.0.*

# 安装 think-queue

composer require topthink/think-queue

2、queue 的配置

think-queue 内置了 Redis,Database,Sync等驱动,

这里介绍使用Redis做消息队列存储,

结合supervisor进程管理使队列常驻进程。

配置文件位于 config/queue.php

return [

// 驱动类型,可选择 sync(默认):同步执行,database:数据库驱动,redis:Redis驱动//或其他自定义的完整的类名

'default' => 'redis', // Redis驱动

'connections' => [

...

'redis' => [

'type' => 'redis', // Redis 驱动

'queue' => 'default', // 默认的队列名称

'host' => '127.0.0.1', // redis 主机ip

'port' => 6379, // redis 端口

'password' => '123456', // redis 密码

'select' => 0, // 使用哪一个 db,默认为 db0

'timeout' => 0, // redis连接的超时时间

'persistent' => false, // 是否是长连接

],

...

]

];

3、创建任务类

单模块项目推荐使用 app\job 作为任务类的命名空间 多模块项目可用使用 app\module\job 作为任务类的命名空间 也可以放在任意可以自动加载到的地方

任务类不需继承任何类,如果这个类只有一个任务,那么就只需要提供一个fire方法就可以了,如果有多个小任务,就写多个方法,下面发布任务的时候会有区别

每个方法会传入两个参数 think\queue\Job $job(当前的任务对象) 和 $data(发布任务时自定义的数据)

namespace app\job;

use think\queue

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值