2015-01-31 7 views
2

Я хотел бы знать, можем ли мы создать бесконечную работу/задачу (вроде роли Azure Worker) с Hangfire. Я хотел бы помещать в очередь электронные письма в очереди Azure, используя запланированное задание Hangfire (каждые 4 часа), а затем запускать бесконечный огонь Hangfire и забывать о задаче/задаче (при запуске сайта) обрабатывать (деактивировать) каждое электронное письмо и отправлять его в SAS Amazon SES каждые 200 миллисекунд (5 сообщений в секунду). Для обработки новых электронных писем очереди нужно постоянно работать бесконечно.Можем ли мы создать бесконечную работу/задачу (вроде роли Azure Worker) с Hangfire?

Таким образом, производительность разумна, это нормально делать, а затем, как управлять потенциальными ошибками, которые могут остановить бесконечное задание и как его перезапустить, если это необходимо. В задании бесконечного цикла я должен также создать новый огонь и забыть задачу для каждого письма, чтобы иметь возможность сделать попытку повторной попытки для каждого письма. Мой сервер Hangfire будет размещен на веб-сайте Azure.

Наконец-то, я делаю все это, потому что Amazon SES не может отправлять электронные письма в очередь. Моя подписка Amazon AWS разрешает мне отправлять 15 электронных писем в секунду.

Надеется, что это ясно, Спасибо,

ответ

-1

Не знает, почему вы хотели бы использовать замедленное воспламенение для этой цели, но Azure WebJobs, кажется, довольно хорошо подходит, где он может обрабатывать сообщения в Azure Queue из ряда коробка.

https://azure.microsoft.com/en-us/documentation/articles/websites-dotnet-webjobs-sdk-storage-queues-how-to/#trigger

Затем вы можете поставить в очередь замедленное воспламенение работу, когда очередь заполнена чем-то.

public static void ProcessQueueMessage([QueueTrigger("emailqueue")] string email, TextWriter logger) 
{ 
    BackgroundJobClient.Enqueue(() => SendEmail(email)); 
} 
+0

Вы не указали, почему Hangfire не подходит, поэтому не ответил на вопрос. – SamuelKDavis