xiaosongshu/yii2-rabbitmq

yii 的 rabbitmq 队列客户端!

v1.0.0 2024-04-24 09:15 UTC

This package is auto-updated.

Last update: 2024-09-24 10:15:11 UTC


README

安装方法 install

composer require xiaosongshu/yii2-rabbitmq

示例 demo

定义一个队列 queue

<?php
namespace app\commands;

require_once __DIR__.'/vendor/autoload.php';

class Demo extends \Xiaosongshu\Rabbitmq\Client
{

    /** 以下是rabbitmq配置 ,请填写您自己的配置 */
    /** @var string $host 服务器地址 */
    public static $host = "127.0.0.1";

    /** @var int $port 服务器端口 */
    public static $port = 5672;

    /** @var string $user 服务器登陆用户 */
    public static $user = "guest";

    /** @var string $pass 服务器登陆密码 */
    public static $pass = "guest";

    /**
     * 业务处理
     * @param array $params
     * @return int
     */
    public static function handle(array $params): int
    {
        //TODO 这里写你的业务逻辑
        // ...
        var_dump($params);
        return self::ACK;
        //return self::NACK;
    }
}

发布消息 publish

\app\commands\Demo::publish(['name'=>'tome','age'=>15]);

你可以在任何地方发布消息。

开启消费

\app\commands\Demo::consume();

你可以将消费者放入 command 命令行中,使用命令行执行队列消费。例如:

<?php

namespace app\commands;

use yii\console\Controller;

/**
 * @purpose 开启队列消费
 * @note 我只是一个例子
 */
class QueueController extends Controller
{

    /**
     * @api php yii queue/index
     * @return void
     * @throws \Exception
     * @comment 开启消费者
     */
    public function actionIndex()
    {
        Demo::consume();
    }
}

开启消费者命令 consume

php yii queue/index

异常 Exception

在队列使用过程中,请使用 \RuntimeException 和 \Exception 捕获异常。

如果需要使用延迟队列,那么 rabbitmq 服务需要安装延迟插件,否则会报错。

联系作者:2723659854@qq.com