Download the PHP package playcat/queue without Composer
On this page you can find all versions of the php package playcat/queue. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download playcat/queue
More information about playcat/queue
Files in playcat/queue
Informations about the package queue
Playcat Queue(2024/4/12 已不更新)
本项目不在维护,推荐使用以下替代
基于tp和swoole的队列系统 playcat-queue-tpswoole
基于webman的队列系统 playcat-queue-webman
————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
基于 webman 的消息队列服务 支持 Redis、Kafka 和 RabbitMQ。 支持延迟消息和异常重试
注意2.0与1.0并不完全兼容
支持的消息系统
- Redis和Redis集群 (redis >= 5.0)
- Kafka (最新版)
- RabbitMQ (最新版)
扩展要求
- PHP >= 7.2
- webman >= 1.4
- PHP Redis扩展 (redis)
- PHP RdKafka扩展 (kafka)
- PHP php-amqplib/php-amqplib(RabbitMQ)
安装
使用方法
1.选择合适消息服务端
-
Redis Stream(默认) 编辑
config\plugin\playcat\queue\redis.php
为对应的redis的配置 -
Redis集群 编辑
config\plugin\playcat\queue\manager.php
里的driver
为如下内容编辑
config\plugin\playcat\queue\rediscluster.php
为对应的redis的配置 -
使用Kafka
-
首先在Kafka上创建好topic
编辑
config\plugin\playcat\queue\manager.php
修改里面的driver
为如下内容编辑
config\plugin\playcat\queue\Kafka.php
,为对应的Kafka的配置 -
使用RabbitMQ 编辑
config\plugin\playcat\queue\manager.php
修改里面的driver
为如下内容编辑
config\plugin\playcat\queue\rabbitmq.php
,为对应的Rabbitmq的配置
2.创建你自己消费者任务
新建一个php的文件并且添加以下内容:
ConsumerData方法
- getID: 当前消息的id
- getRetryCount(): 当前任务已经重试过的次数
- getQueueData(): 当前任务传入的参数
- getChannel(): 当前所执行的任务名称
-
- -
将上面编写好的任务文件保存到'app/queue/playcat/'目录下。如果目录不存在就创建它
==可以编辑config/plugin/playcat/queue/process.php中的consumer_dir的设置来改为你定义的路径==
启动webman的服务,
如果没有错误出现则服务端启动完成
添加任务并发布到队列中
ProducerData方法
- setChannel: 设置推入消息的队列名称
- setQueueData: 设置传入到消费任务的数据
- setDelayTime: 设置延迟时间(秒)
-
- -
异常与重试机制
任务在执行过程中未抛出异常则默认执行成功,否则则进入重试阶段. 重试次数和时间由配置控制,重试间隔时间为当前重试次数的幂函数。 Playcat\Queue\Exceptions\DontRetry异常会忽略掉重试
QQ:318274085
License
MIT