adcbguo / think_rabbit_mq
this is mall queue
1.0.0
2019-11-06 02:34 UTC
Requires
- php: >=7.2.0
- ext-json: *
- php-amqplib/php-amqplib: ^2.9
- topthink/framework: 6.0.0
Conflicts
This package is auto-updated.
Last update: 2025-03-06 15:27:28 UTC
README
安装使用
composer require adcbguo/think_rabbit_mq
配置文件
// 复制配置文件
vendor\adcbguo\think_rabbit_mq\rabbit_mq.php 文件到 config/rabbit_mq.php
// 配置自定义命令 config\console.php 增加一行
'queue:work' => 'queue\command\Work'
发布消息队列
use Queue;
Queue::pash($job,$data,$attempts,['exchange' => 'mall_dev_log', 'queue' => 'mall_dev_log'])
$job
是任务名
执行队列消耗类fire,写类名即可
app\log\jobs\ErrorLogJobs
如果一个任务类里有多个小任务的话,需要用@+方法名
app\log\jobs\OrderLogJobs@update
$data
传递参数
是你要传到任务里的参数,必须是数组数据
在消耗类里使用
$this->data
获取
$attempts
执行次数
从第几次开始执行
$mq
虚拟机和队列
发布到那个虚拟机和队列
需要有对应的虚拟机和队列去消耗
监听任务并执行
php think queue:work --exchange=mall_dev --queue=mall_dev --memory=128 --tries=3
exchange
RabbitMQ的虚拟机
queue
RabbitMQ的队列
memory
单个进程使用的最大内存,超出内存会从新启动一个进程
tries
单个消息执行最大次数
可配合
supervisor
使用,保证进程常驻