コード例 #1
0
            internal void LongPollSqs(SqsPollingClientSettings settings)
            {
                var failCounter = 0;

                while (true)
                {
                    IEnumerable <SqsMessage> messages;
                    try {
                        messages    = _container._client.ReceiveMessages(settings.QueueName, settings.LongPollInterval, settings.MaxNumberOfMessages);
                        failCounter = 0;
                    } catch (Exception e) {
                        LogError(e, string.Format("ReceiveMessages (fail count: {0:#,##0})", ++failCounter));
                        AsyncUtil.Sleep(settings.WaitTimeOnError);
                        continue;
                    }
                    if (_isDisposed)
                    {
                        break;
                    }
                    if (messages.None())
                    {
                        continue;
                    }
                    try {
                        settings.Callback(messages);
                    } catch (Exception e) {
                        LogError(e, "callback failed");
                    }
                }
            }
コード例 #2
0
ファイル: SqsPollingClient.cs プロジェクト: bjorg/DReAM
 internal void LongPollSqs(SqsPollingClientSettings settings)
 {
     var failCounter = 0;
     while(true) {
         IEnumerable<SqsMessage> messages;
         try {
             messages = _container._client.ReceiveMessages(settings.QueueName, settings.LongPollInterval, settings.MaxNumberOfMessages);
             failCounter = 0;
         } catch(Exception e) {
             LogError(e, string.Format("ReceiveMessages (fail count: {0:#,##0})", ++failCounter));
             AsyncUtil.Sleep(settings.WaitTimeOnError);
             continue;
         }
         if(_isDisposed) {
             break;
         }
         if(messages.None()) {
             continue;
         }
         try {
             settings.Callback(messages);
         } catch(Exception e) {
             LogError(e, "callback failed");
         }
     }
 }