Message readNextMessage()
{
int retryAttempts = 0;
var receiveRequest = new ReceiveMessageRequest() { QueueUrl = this.queueUrl, MaxNumberOfMessages = 1 };
while (true)
{
try
{
var receiveResponse = this.sqsClient.ReceiveMessage(receiveRequest);
retryAttempts = 0;
if (receiveResponse.Messages.Count == 0)
{
Thread.Sleep((int)(this.options.PollingInterval * 1000 * 60));
continue;
}
return receiveResponse.Messages[0];
}
catch (Exception)
{
retryAttempts++;
if (retryAttempts <= MAX_OPERATION_RETRY)
Thread.Sleep(60 * 1000);
else
throw;
}
}
}