mehr-it / lara-sqs-plain
在 Laravel 中接收自定义/普通 SQS 消息
Requires
- php: >=7.0.0
- ext-json: *
- aws/aws-sdk-php: ~3.0
- laravel/framework: ^5.7.7|^6.0|^7.0|^8.0
- mehr-it/lara-sqs-ext: ^2.8.1|^3.0
Requires (Dev)
- orchestra/testbench: ^3.8|^4.0|^5.0|^6.0
- phpunit/phpunit: ^7.4|^8.5
This package is auto-updated.
Last update: 2024-09-20 21:12:05 UTC
README
允许在 Laravel 中接收自定义/普通 SQS 消息。如果您需要处理来自 Laravel 外部的第三方消息,这将非常有用。
您将在处理类构造函数中接收纯文本消息内容。您可以针对每个队列指定自己的处理类。
本软件包基于 mehr-it/lara-sqs-ext 软件包,并实现了其中大部分功能。
安装
composer require mehr-it/lara-sqs-plain
本软件包使用 Laravel 的软件包自动发现,因此服务提供程序将自动加载。
队列配置
只需像配置 Laravel 中的任何其他 SQS 队列一样配置队列连接。唯一的区别是 message_handler
选项,它必须是应处理消息的类的名称。
'sqs-plain-conn' => [
'driver' => 'sqs-plain',
'key' => '112233445566778899',
'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxx',
'prefix' => 'https://sqs.eu-central-1.amazonaws.com/11223344556677',
'queue' => 'msgs',
'region' => 'eu-central-1',
'message_handler' => 'App\\Job\\MyPlainHandler',
],
长轮询
要启用长轮询,您可以将选项 message_wait_timeout
添加到队列配置中。这将设置 WaitTimeSeconds
参数为配置的时间量。
'message_wait_timeout' => 20,
消息处理器
要创建 SQS 消息的处理程序,只需扩展 SqsPlainMessageHandler
类。对于每条消息,都会调用 handle
函数,并且原始消息体将可在 message
属性中找到。
class MyPlainHandler extends SqsPlainMessageHandler {
public function handle() {
$rawMessage = $this->message;
}
}
基类已经实现了 InteractsWithQueue
和 InteractsWithSqsQueue
特性,因此您可以与队列进行交互。
消息处理器可以定义与常见作业相同的属性,以控制作业工作者。这包括 tries
、timeout
、timeoutAt
、automaticQueueVisibility
、automaticQueueVisibilityExtra
或 retryUntil
方法。
感谢
感谢 Jussi Hamalainen 编写了 jusahah/laravel-sqs-jobless
软件包,该软件包为这个软件包提供了指导。