elielelie/laravel-activemq

Laravel ActiveMQ 驱动器

v1.0.6 2023-07-27 11:50 UTC

This package is auto-updated.

Last update: 2024-09-27 14:19:16 UTC


README

Build Status Total Downloads Latest Stable Version License

此包允许在 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