2016-12-19 6 views
1

PHPアプリケーションでAWS SNSサービスを使用して、メッセージをキューに送信しています。SNS公開方式でタイムアウトを設定するにはどうすればよいですか?

インターネット接続が切断されている場合、アプリケーションはメッセージを書き込まずに実行し続ける必要があります。しかし、キューにメッセージを公開する方法は非常に長いタイムアウトを持つため、インターネットなしではアプリケーションを使用できなくなります。

私はAWS SDKのどこに小さなタイムアウトを設定できる場所が見つかりませんでした。 これを実行する方法はありますか?

次に、snsClientオブジェクトの構成例を示します。 @Anthony Neaceがhttpタイムアウトを使用するようにパラメータを編集しました。私はここで見つけたようにrequest.options connect_timeoutも使用しようとしていますhttp://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html
インターネットがダウンしているときにシミュレーションするようにPCのゲートウェイを変更しました。私は、例外が発生しました[カール] 28:解決は3000ミリ秒https://sns.sa-east-1.amazonaws.com/

use Aws\Sns\SnsClient; 

    SnsClient::factory([ 
     'version'  => '...', 
     'region'  => '...', 
     'credentials' => [ 
      'key' => '...', 
      'secret' => '...', 
     ], 
     'http' => [ 
      'timeout' => 5 
     ], 
     'request.options' => [ 
      'connect_timeout' => 5 
     ] 
    ]); 

答えて

2

あなたがあなたのクライアントのコンストラクタでタイムアウトを設定することができます後にタイムアウトになりました。これは、SnsClient Publishを含む、そのクライアントで行ったすべての要求に適用されます。

ここSnsClientを使用するように変更ドキュメントの例は次のとおり

  • AWS SDK for PHP - SnsClient
  • AWS SDK for PHP - Client Configuration Options - Timeout
  • (SnsClientこのコンストラクタを継承)

    • AWS SDK for PHP - AWSClient Constructor

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

      また読書

    +0

    こんにちはアンソニー、あなたの返信ありがとう –

    関連する問題