aloware/horizon-wildcard-consumer

扩展 Laravel Horizon,提供动态匹配通配符的队列监听功能。

v1.2.6 2022-03-12 10:47 UTC

README

此包允许您通过在 Horizon 配置文件中将队列名称中的通配符 * 用于动态添加队列进行监听。

安装

您可以通过以下命令使用 composer 安装此包

composer require aloware/horizon-wildcard-consumer

用法

此包提供单个命令用于消费动态添加的队列

php artisan horizon:wildcard-consume

在运行此命令之前,请确保您已在 Horizon 配置文件中将通配符添加到您的 supervisor 中。如果没有在配置中使用通配符,则此命令的作用与标准的 php artisan horizon 命令相同。

示例 horizon 配置

config/horizon.php 环境部分(请注意队列名称中的 *

connection 可以设置为 rabbitmq

'environments' => [
    'production' => [
        'supervisor-1' => [
            'connection' => 'redis',
            'queue' => ['default', 'user_*_notes', '*-bills'],
            'balance' => 'auto',
            'processes' => 10,
            'tries' => 3,
        ],
        'supervisor-2' => [
            'connection' => 'redis',
            'queue' => ['agent_*_calls', 'company_*_messages'],
            'balance' => 'auto',
            'processes' => 5,
            'tries' => 3,
        ]
    ]
]

RabbitMQ 的示例配置

将 RabbitMQ 连接配置添加到 config/queue.php。您可以从维护者的仓库中获取示例配置:https://github.com/vyuldashev/laravel-queue-rabbitmq/tree/v8.0

Redis 的示例 .env 配置

QUEUE_CONNECTION=redis
QUEUE_OBSERVER_TIMEOUT=25

RabbitMQ 的示例 .env 配置

QUEUE_CONNECTION=rabbitmq
QUEUE_OBSERVER_TIMEOUT=25
RABBITMQ_WORKER=horizon
RABBITMQ_API_URL=https://:15672
RABBITMQ_HOST=rabbitmq
RABBITMQ_PORT=5672
RABBITMQ_LOGIN=admin
RABBITMQ_PASSWORD=admin
RABBITMQ_SSL=0
RABBITMQ_QUEUE=default
RABBITMQ_VHOST=/

有关更多信息,请参阅 https://github.com/vyuldashev/laravel-queue-rabbitmq/tree/v8.0