dirk39/sqs-manager

此包已被 废弃 并不再维护。没有建议的替代包。

一个简单的库,用于从 SQS 队列中获取和管理消息

v1.0.2 2018-05-03 18:30 UTC

This package is auto-updated.

Last update: 2023-02-19 21:36:49 UTC


README

Build Status

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_KEYAWS_SECRETAWS_REGIONAWS_QUEUE_NAME 的默认值替换为您自己的值。重要:AWS 凭证必须是具有 Amazon SQS 读写权限的用户。测试结束时,将清除设计队列中的所有消息,因此不要使用生产 SQS 队列!