2009-02-20 4 views
17

Хотя этот вопрос особенный для Azure, я уверен, что это обычная ситуация для облачных вычислений в целом.Azure Task Scheduler

У меня есть список задач, которые мне нужно запустить в определенное время. С сервером окна я могу использовать Task Scheduler и планировать свою программу для запуска в определенное время. Я мог бы сделать еще один шаг и создать службу Windows, которая будет выполняться с заданным интервалом, а затем выполнить соответствующую задачу.

Есть ли у кого-нибудь предложение о наилучшем подходе к среде облачных вычислений?

Я мог бы создать рабочую роль, которая каждую секунду проверяет список задач, а затем бросает соответствующую задачу в очередь, обрабатываемую другой ролью работника.

Я мог бы создать рабочую роль, которая будет выполняться один раз в день, захватить все задачи и отправить их в очередь. Роли процессора затем вытаскивают элемент из очереди и обрабатываются в соответствующее время.

Любые другие предложения?

+2

Заканчивать Лазурное Toolkit (HTTP: //azuretoolkit.codeplex .com). Теперь он поддерживает планирование работы cron. –

ответ

1

Дубликат: Recommend a C# Task Scheduling Library который рекомендует Quartz.Net. Недавно я работал над проектом, который успешно использовал это приложение под Windows.

+0

Спасибо за ссылку. Это похоже на отличную библиотеку. Однако на данный момент меня интересуют лучшие практики и архитектурные подходы. – 2009-02-20 22:48:12

0

Рассматривались ли вы с использованием дат истечения срока действия элементов в очереди Azure?

Я столкнулся с новым подходом к планированию, который также должен работать на Azure. Использование обратных вызовов элемента кэша ASP.NET. Here.

+1

Как это работает для Azure - вы не можете зарегистрироваться для обратного вызова, чтобы уведомить, что элемент очереди истек, а опрос и проверка истечения срока действия, возможно, будут пропущены. –

8

Вы можете настроить Bus очереди обслуживания и использовать его в качестве планировщика.

Отправлять сообщения в очередь, установив ScheduledEnqueueTimeUtc на сообщение в нужное время, и сообщение появится в очереди в это время. В исполняющей роли исполнителя/веб-роли вы настраиваете получателя в этой очереди, и затем он будет получать задание сразу же после появления сообщения, т. Е. Задание должно быть выполнено.

Приятно то, что вы можете использовать это для балансировки заданий по нескольким экземплярам, ​​и поскольку таймер полностью внешний для вашего приложения, вам не нужно хранить и воскрешать и управлять им. SB делает все это для вас.

Одно предупреждение: SB не имеет возможности отменить запланированные сообщения.

6

Есть теперь несколько вариантов сделать это на Azure

1

Yo может попробовать с четырьмя предложениями:

  1. Роды лазурного труда (облачное обслуживание)
  2. Azure Scheduler сервис
  3. Azure Mobile Services планировщик
  4. Azure Сайты Web Вакансии

Для получения дополнительной информации, пожалуйста, перейдите по ссылке Azure Schedule Tasks