Php 如何在SNS发布方法中设置超时?

Php 如何在SNS发布方法中设置超时?,php,amazon-web-services,aws-sdk,amazon-sns,Php,Amazon Web Services,Aws Sdk,Amazon Sns,我在PHP应用程序中使用AWS SNS服务向队列发送消息 如果internet连接断开,应用程序应在不写入消息的情况下继续运行。但是在队列上发布消息的方法有很长的超时时间,这使得应用程序在没有internet的情况下无法使用 我在AWS SDK中找不到任何可以设置较小超时的地方。 有没有办法做到这一点 下面是snsClient对象的构造示例。 正如@Anthony Neace告诉我的,我已经编辑了参数以使用http超时,我还尝试使用我在这里找到的request.options connect\u

我在PHP应用程序中使用AWS SNS服务向队列发送消息

如果internet连接断开,应用程序应在不写入消息的情况下继续运行。但是在队列上发布消息的方法有很长的超时时间,这使得应用程序在没有internet的情况下无法使用

我在AWS SDK中找不到任何可以设置较小超时的地方。 有没有办法做到这一点

下面是snsClient对象的构造示例。 正如@Anthony Neace告诉我的,我已经编辑了参数以使用http超时,我还尝试使用我在这里找到的request.options connect\u timeout
我改变了我电脑的网关,模拟互联网关闭时的情况,得到了异常[curl]28:3000毫秒后解析超时


您可以在客户端的构造函数中设置超时。这将适用于您对该客户端发出的所有请求,包括SnsClient Publish

以下是文档中的一个示例,已修改为使用SnsClient:

use Aws\Sns\SnsClient;

// Timeout after 5 seconds.
$client = new SnsClient([
    'region'  => 'us-west-2',
    'version' => 'latest',
    'http'    => [
        'timeout' => 5
    ]
]);
进一步阅读:

  • (SnsClient继承此构造函数)
use Aws\Sns\SnsClient;

// Timeout after 5 seconds.
$client = new SnsClient([
    'region'  => 'us-west-2',
    'version' => 'latest',
    'http'    => [
        'timeout' => 5
    ]
]);