Это мой первый раз, когда я сделал вид приложения WebJob. Я создал проект webjob, и в решении он поставляется с Program.cs
и Function.cs
.Azure WebJob Лучший подход
Я уже удалил Function.cs
, потому что в этом проекте нет очереди, из которой я получаю данные.
Сейчас в Program.cs
уже есть основной метод, как:
class Program
{
// Please set the following connection strings in app.config for this WebJob to run:
// AzureWebJobsDashboard and AzureWebJobsStorage
static void Main()
{
var host = new JobHost();
// The following code ensures that the WebJob will be running continuously
host.RunAndBlock();
}
}
Как я понимаю, что RunAndBlock
это запустить webjob непрерывно, но я хочу, чтобы работа запустить только один раз. Я хочу контролировать выполнение извне по расписанию. Я хотел бы знать, как сделать мой код только один раз? Как видно ниже, у меня есть класс SupportService
, который имеет RunOnePoolProvisioingCycle
, я хочу назвать этот метод только один раз. Правильно ли это?
static void Main()
{
SupportService _supportService = new SupportService();
_supportService.Initialize();
_supportService.SetPoolProvisioningConfigurations();
_supportService.RunOnePoolProvisioningCycle();
}
или этот?
static void Main()
{
var host = new JobHost();
SupportService _supportService = new SupportService();
_supportService.Initialize();
_supportService.SetPoolProvisioningConfigurations();
host.Call(typeof(SupportService).GetMethod("SetPoolProvisioningConfigurations"));
}
или этот?
static void Main()
{
var host = new JobHost();
SupportService _supportService = new SupportService();
_supportService.Initialize();
_supportService.SetPoolProvisioningConfigurations();
host.CallAsync(typeof(SupportService).GetMethod("SetPoolProvisioningConfigurations"));
}
или я должен использовать:
host.Start()
или
host.StartAsync()?
Я считаю, что все ответы здесь верны, поскольку мой вопрос касается подхода. но я должен выбрать один. это примечание для тех, кто видит это сообщение. –