dirk39 / sqs-manager
此包已被 废弃 并不再维护。没有建议的替代包。
一个简单的库,用于从 SQS 队列中获取和管理消息
v1.0.2
2018-05-03 18:30 UTC
Requires
- aws/aws-sdk-php: dev-master
Requires (Dev)
- phpunit/phpunit: ^5.7
This package is auto-updated.
Last update: 2023-02-19 21:36:49 UTC
README
SQS Manager 是一个库,简化了从 SQS 队列获取消息的过程。SQS Manager 从您想要的队列中读取消息,准备一个 SQSManager\Message
对象,并将其传递到您定义的函数或方法中。此库的主要优点包括:
- 消息耗尽后,将由 Manager 从队列中删除。
- 如果 Manager 捕获到异常,剩余的消息将被释放,捕获的异常将被抛出。
- 如果 Manager 获取多个消息,它将依次将它们传递给设计的方法/函数。之后,Manager 将检查剩余消息的
VisibilityTimeout
,如果到期时间短,它将根据VisibilityTimeout
值延长过期时间。根据 AWS SQS 文档,最大超时时间为 12 小时。
安装
SQSManager 可以通过 composer 安装。
composer install dirk39/sqs-manager
文档
SQS Manager 的使用非常简单。
构造
require_once 'vendor/autoload.php'; $manager = new SQSManager\Manager('AWS_APP_ID', 'AWS_APP_SECRET', 'AWS_REGION', $additional_conf);
在 $additional_conf
数组中,您可以添加对 Aws\Sqs\SqsClient
的自定义配置。有关更多信息,请参阅 此处。
获取消息
.... $manager->run($queueName, $callback, $listenerConfigs);
$queueName
:需要获取的队列名称。$queue
可以是队列名称或其 URL。$callback
:$callback 值将被传递到call_user_func
。有关可接受的 $callback 值的文档,请参阅 此处。Manager 将SQSManager\Message
对象传递到您的回调函数/方法中。$listenerConfigs
:传递给Aws\Sqs\SqsClient::receiveMessage
方法的额外配置。有关允许的配置的更多信息,请参阅 此处
Manager 配置器
changeVisibilityTimeout
:更改默认的VisibilityTimeout
值。它必须是介于 0 和 43200 秒(即 12 小时)之间的整数。setWaitTimeSeconds
:更改默认的WaitTimeSeconds
值。它必须是介于 1 和 20 秒之间的整数。setMaxNumberOfMessages
:更改默认的MaxNumberOfMessages
值。它必须是介于 1 和 10 之间的整数。
测试
为了复制集成测试,您必须将 tests/config.example.php
复制到 tests/configs.php
,并将 AWS_KEY
、AWS_SECRET
、AWS_REGION
、AWS_QUEUE_NAME
的默认值替换为您自己的值。重要:AWS 凭证必须是具有 Amazon SQS 读写权限的用户。测试结束时,将清除设计队列中的所有消息,因此不要使用生产 SQS 队列!