2014-10-30 4 views
0

Я пытаюсь получить некоторое понимание и опыт создания фоновых процессов на Azure.Вызов простой рабочей роли

Я создал простое консольное приложение и преобразовал его в Azure Worker Role. Как его вызвать? Я попытался использовать Azure Scheduler, но похоже, что планировщик может только вызвать рабочую роль через очереди сообщений или HTTP/HTTPS.

Я никогда не думал о каком-либо типе общения, поскольку моя идея состояла в том, чтобы создать фоновый процесс, который на самом деле не взаимодействует с каким-либо другим приложением. Нужно ли преобразовать рабочую роль в веб-роль и вызвать ее с помощью Azure Scheduler с помощью HTTP/HTTPS?

+0

Вы говорите о роли работника или о работе в Интернете. Мне кажется, что вы действительно хотите работать в Интернете. –

+0

Я думаю, что вам не хватает ключевого момента о ролях рабочих: это * виртуальные машины *. Это не задача, которую вы просто вызываете. –

+0

Дэвид, ты прав. Я не был в этом разбираться. Какое решение я ищу? Я просто хочу вызвать фоновое задание. – Sam

ответ

-1

Worker роль имеет три события:

  1. OnStart
  2. OnRun
  3. OnStop
public class WorkerRole : RoleEntryPoint 
    { 
     ManualResetEvent CompletedEvent = new ManualResetEvent(false); 

     public override void Run() 
     { 
      //Your background processing code 
      CompletedEvent.WaitOne(); 
     } 

     public override bool OnStart() 
     { 
      return base.OnStart(); 
     } 

     public override void OnStop() 
     { 
      CompletedEvent.Set(); 
      base.OnStop(); 
     } 
    } 

момент, когда вы запустите/отладки консоли конвертируется рабочий роль. Первые два (OnStart & OnRun) срабатывает последовательно. Теперь в OnRun вам нужно сохранить поток в живом режиме, используя цикл while или используя ManualResetEvent, где будет жить ваш код фоновой обработки.

OnStop уволен, когда вы либо выпускаете нить из OnRun, либо что-то не ожидаемое. Это место для размещения ваших объектов. Закрыть закрытое соединение с файловыми порталами и т. Д.