2014-10-28 2 views
0

Ok Azure Experts,Azure - Запланированные Long Running Задача - Шкала вниз Worker Role к нулю

  • У меня есть задача, которую нужно только запустить один раз в неделю - это длинный работает задача, которая может занять 2-3 дня для запуска.

  • Я создал рабочую роль для масштабирования на основе очереди. В день мы хотим, чтобы задача была запущена - мы заполняем очередь (используя Web Job).

  • В оставшееся время, когда очередь пуста, я хочу, чтобы рабочие роли были закрыты, но я не могу уменьшить до 0 экземпляров.

  • Первоначально мы хотели сделать это с помощью Web Job, но сайт время от времени отключается - внезапно отключая мой веб-сайт - это должно произойти? Даже с включенным Keep-Alive? Кроме того, вы не можете остановить запуск запущенного веб-задания - поэтому, если мы хотим остановить процесс, нам нужно отключить веб-сайт, а не идеально.

Как я могу масштабировать свои экземпляры до нуля?

* Альтернативные решения также приветствуются.

Пытается свести к минимуму стоимость здесь - зачем платить за роль рабочего, которая ничего не делает?

+0

Hi Simcha, ваш веб-сайт с WebJob в стандартном ярусе и установлен на AlwaysOn? Если нет, ваш WebSite будет отключен в режиме ожидания и загружается при обращении. Тогда ваш WebJob больше не будет работать. – wuerzelchen

ответ

0

В настоящее время невозможно масштабировать роль рабочего до 0 экземпляров. Даже если вы остановите рабочую роль, вы по-прежнему несут обвинения в экземплярах STOPPED.

Однако поведение, которое вы ищете, возможно с помощью Virtual Machines. Если вы завершите (STOP & DEALLOCATE) виртуальную машину, вы не платите комиссию за эту машину.

Теперь единственная задача - остановить/запустить виртуальную машину на основе подсчета очереди. Я не помню, поддерживает ли собственное масштабирование портала Azure масштабирование до 0 экземпляров для виртуальных машин. Однако, если вы используете AzureWatch, вы сможете сделать это без каких-либо проблем. Отказ от ответственности: я связан с AzureWatch.

HTH

+0

Спасибо. Кстати, вам не обязательно делать это с помощью AzureWatch. Вы можете отключить виртуальную машину с помощью автоматических скриптов. –

+0

Несомненно, запуск скрипта powershell для запуска виртуальной машины прост. Однако делать это только тогда, когда в очереди есть вещи, сложнее, так как вам нужно иметь что-то, что отслеживает очередь, и вам нужно разместить эту файловую систему где-нибудь, чтобы ее запустить. Но определенно выполнимый – Igorek

+0

Я думаю, что вы можете сделать это, используя Azure Automation Run Books прямо с Azure Portal, но вы правильно смотрите на очереди, может быть, сложнее ... вернуться к теме, нет способа автоматизировать процесс и только заряжаться, когда он работает? –