mrehman23/aws-sqs

用于与亚马逊简单队列服务(SQS)交互的PHP包

0.0.6 2023-08-26 16:55 UTC

This package is auto-updated.

Last update: 2024-09-26 19:17:05 UTC


README

License

此包提供了使用PHP与亚马逊简单队列服务(SQS)交互的简单方便的方式。

特性

  • 向SQS队列发送消息。
  • 从SQS队列接收消息。
  • 从SQS队列删除消息。

要求

  • PHP 7.2或更高版本
  • AWS SDK for PHP (aws/aws-sdk-php)
  • 配置AWS账户凭证(访问密钥ID和秘密访问密钥)

安装

您可以通过Composer安装此包

composer require mrehman23/aws-sqs

示例

require 'vendor/autoload.php';
use AwsSqs\SqsMessenger;
$AwsConfig = [
    'AWS_KEY'=>'', //You should put your AWS_KEY 
    'AWS_SECRET_KEY'=>'', //You should put your AWS_SECRET_KEY 
    'AWS_REGION'=>'eu-west-1', //You should put your AWS_REGION 
    'API_VERSION'=>'2012-11-05'
];
$messenger = new SqsMessenger($AwsConfig);
// $messenger->RetryTimesOnFail = 2;
// $messenger->WaitBeforeRetry = 1; //seconds
$queue = "<Your queueUrl>";
$message = "This is a message for SQS";
$messageAttributes['params'] = [
    'DataType' => 'String',
    'StringValue' => json_encode($params)
];
$delaySeconds = 10;
$messageGroupId = '';
$messageDeduplicationId = '';
$result = $messenger->publish($queue, $message, $messageAttributes, $delaySeconds, $messageGroupId, $messageDeduplicationId);

监听器

require 'vendor/autoload.php';
use AwsSqs\SqsWorker;

$worker = new SqsWorker($this->awsConfig['credentials']);
$worker->listen(
    $this->awsConfig['queue'],
    [$this, 'processMessage'],
    [$this, 'errorHandler']
);