Вызывая простую рабочую роль

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

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

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

1 ответ

Рабочая роль имеет три события:

  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 или происходит что-то непредвиденное. Это место для утилизации ваших предметов. Закрытие файла-дескриптор соединения с базой данных и т. Д.

Другие вопросы по тегам