2016-05-30 9 views
0

AndroidでAmazon SQSに関する断続的なネットワーク接続を処理する方法を理解しようとしています。私は10分ごとにメッセージを送信する必要があり、ネットワークの問題が原因で配信できないメッセージは、ネットワークが復元されたときに最も早く送信されるようにしたいと考えています。私のホストされたサービスはメッセージを並べ替えるので、一度にいくつかのキューに入れられたメッセージを取得することは問題ありませんが、メッセージを完全に破棄することは問題です。Amazon SQS(Android)が間欠的なネットワーク接続を処理する

AFAIK、私の再試行ポリシーは、最大25回再試行してから放棄するように設定されています。明らかにこれは素晴らしい解決策ではありませんが、ネットワーク接続のコールバックや、ネットワークの問題が原因で接続が復元されたときに再試行するオプションはありませんでした。

(私はこのAPIについて知っているものを使用して)考えることができる唯一の代替案は、非常に長持ちするバックオフ戦略を実装し、ユーザーがX時間でネットワークを再開することを願っていますが、

ClientConfiguration ccfg = new ClientConfiguration(); 
      ccfg.setRetryPolicy(new RetryPolicy(null, null, 25, false)); 
      AmazonSQSClient client = new  
AmazonSQSClient(params[0].credentialsProvider, ccfg); 

答えて

1

この場合、再試行ポリシーを設定することは役に立ちません。あなたがする必要があるかもしれません何

です:。

  1. キャッシュSQSメッセージネットワークは、モバイルで到達できない(ファイルまたはいずれかデシベル)。

  2. ネットワークが到達不能から到達可能に変更されたときにandroidおよびtrigger sqsコールでネットワーク変更リスナーを実装します。

https://developer.android.com/training/monitoring-device-state/connectivity-monitoring.html

を見てみましょう
関連する問題