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 软件包,该软件包为这个软件包提供了指导。