tp6使用rabbitmq

本文介绍了如何在ThinkPHP6(TP6)中集成并使用RabbitMQ实现消息队列。首先,通过composer安装amqp扩展包,接着创建配置文件`config/rabbit_mq.php`。然后,分别编写了生产者Producer.php和消费者Consumer.php。通过自定义命令行指令,可以生成并修改Consumer.php。在`config/console.php`中添加相应配置后,运行`php think consumer`测试命令有效性。最后,在控制器创建接口,模拟用户触发消息队列,并展示了运行结果。
摘要由CSDN通过智能技术生成

1.composer安装amqp包

composer requirer php-amqplib/php-amqplib

2.新建配置文件 config/rabbit_mq.php

return [
    'host'=>'127.0.0.1',
    'port'=>'5672',
    'user'=>'guest',
    'password'=>'guest',
    'vhost'=>'/',
    'exchange_name' => 'email_exchange',
    'queue_name' => 'email_queue',
    'route_key' => 'email_route',
    'consumer_tag' => 'consumer',

];

3. 生产者Producer.php

<?php

namespace app;

use PhpAmqpLib\Connection\AMQPStreamConnection;
use PhpAmqpLib\Exchange\AMQPExchangeType;
use PhpAmqpLib\Message\AMQPMessage;

class Producer
{

    private $connection;
    private $channel;
    private $mq_config;

    public function __construct()
    {
        $this->mq_config = config('rabbit_mq');
        $this->connection = new AMQPStreamConnection(
            $this->mq_config['host'],
            $this->mq_config['port'],
            $this->mq_config['user'],
            $this->mq_config['password']
        );
        //创建通道
        $this->channel = $this->connection->channel();
    }

    public function send($data)
    {
        /**
         * 创建队列(Queue)
         * name: hello         // 队列名称
         * passive: false      // 如果设置true存在则返回OK,否则就报错。设置false存在返回OK,不存在则自动创建
         * durable: true       // 是否持久化,设置false是存放到内存中的,RabbitMQ重启后会丢失;设置true,则代表是一个持久化的队列,服务重启后也会存在,因为服务会把持久化的queue存放到磁盘上当服务重启的时候,会重新加载之前被持久化的queue
         * exclusive: false    // 是否排他,指定该选项为true则队列只对当前连接有效,连接断开后自动删除
     
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值