elielelie / laravel-activemq
Laravel ActiveMQ 驱动器
v1.0.6
2023-07-27 11:50 UTC
Requires
- php: ^7.4|^8.0
- stomp-php/stomp-php: ^5.0
README
此包允许在 Laravel 内部原生使用 ActiveMQ (Stomp) 队列驱动器。
安装
composer require elielelie/laravel-activemq
为了将其连接到您的队列,您需要更改 .env 文件中的队列连接驱动程序
QUEUE_CONNECTION=activemq
变量
ACTIVEMQ_PROTOCOL protocol (defaults to TCP)
ACTIVEMQ_HOST broker host (defaults to 127.0.0.1)
ACTIVEMQ_PORT port where STOMP is exposed in your broker (defaults to 61613)
ACTIVEMQ_USERNAME broker username (defaults to admin)
ACTIVEMQ_PASSWORD broker password (defaults to admin)
您可以使用以下方式订阅队列以读取或写入
ACTIVEMQ_QUEUE=...
default;email
您可以在配置文件中查看所有其他可用的 .env 变量、它们的默认值和使用说明
您可以通过运行以下命令发布配置文件
$ php artisan vendor:publish --provider="Elielelie\ActiveMQ\ActiveMQServiceProvider"
失败的任务
为了简单和简洁,ActiveMQJob 类被定义为利用 Laravel 的 tries 和 backoff 属性(请参阅官方文档)。
失败时,任务将重试 5 次然后写入失败的任务表。
每次后续尝试将在 attempt^2 秒后进行尝试,这意味着如果它是第三次尝试,它将在前一个任务失败后 9 秒后重试。
请注意,默认情况下,作业属性具有比 CLI 命令优先级,因此在这种情况下,标志 --tries
和 --backoff
将被覆盖。
您可以使用以下 .env
变量关闭此行为
ACTIVEMQ_AUTO_TRIES
- 默认为true
。将其设置为false
以恢复 Laravel 默认的 0 次重试。ACTIVEMQ_AUTO_BACKOFF
- 默认为true
。将其设置为false
以恢复 Laravel 默认的 0 秒回退。ACTIVEMQ_BACKOFF_MULTIPLIER
- 默认为2
。如果ACTIVEMQ_AUTO_BACKOFF
被关闭,则不起作用。增加它以在两次失败作业之间创建更大的间隔。
作业将重新入队到它所来的队列。
日志
默认情况下关闭日志。您可以通过设置 env 键 ACTIVEMQ_LOGS=true
来包含它们。
如果您想更改默认的日志管理器,可以在 log-activemq
配置文件中完成。新的日志管理器必须扩展 Illuminate\Log\LogManager
。