Пример #1
0
        private void DequeueAndSendEmails()
        {
            var messages = EmailController.Dequeue(20);

            foreach (var message in messages)
            {
                bool requeueMessage = true;

                try
                {
                    if (message.EmailMessage.SendDate <= DateTime.UtcNow)
                    {
                        EmailController.SendEmail(message.EmailMessage);
                        message.Delete();
                        requeueMessage = false;
                    }
                }
                catch (Exception ex)
                {
                    if (failureCount++ < 100)
                    {
                        ExceptionHelper.Log(ex, string.Empty);
                    }
                }
                finally
                {
                    if (requeueMessage)
                    {
                        message.Requeue();
                    }
                }
            }
        }