6phere/horizon-wildcard-consumer

扩展Laravel Horizon,可动态监听匹配通配符的队列。

v1.0.0 2024-08-20 13:45 UTC

This package is auto-updated.

Last update: 2024-09-20 14:01:21 UTC


README

此包允许您通过在Horizon配置文件中设置队列名称包含通配符*来监听动态添加的队列。

安装

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

composer require 6phere/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