Как использовать Webjob для вызова метода в WebApp в Azure - PullRequest
0 голосов
/ 04 апреля 2020

Мне нужно каждый час вызывать методы в моем веб-приложении (как pnet core MVC), которое публикуется на Azure. В основном Azure дает возможность создавать веб-задания в «контексте веб-приложения». Как я могу использовать webjob для вызова методов в веб-приложении. Как я понимаю, для webjob мне нужно создать отдельный проект и затем развернуть его, но могу ли я связать параметры или вызвать методы из webjob?

Также как получить доступ к webapp wwwroot с помощью программы webjob?

1 Ответ

0 голосов
/ 05 апреля 2020

Исходя из вашего комментария, я бы порекомендовал один из двух вариантов. Во-первых, если вам просто нужно обновить базу данных, и любой лог c, чтобы сделать это обновление, можно легко разместить в самой WebJob, тогда просто запустите WebJob как процесс cron, подключитесь непосредственно к базе данных в WebJob. и сделайте обновление оттуда. Это лучший вариант, если это обновление БД не зависит от состояния или информации о запущенном веб-приложении.

Если вы хотите на самом деле go через WebApp, тогда вы понимаете, что нужно создать маршрут / конечную точку в веб-приложении (каким-то образом защитить его!), Который вызывает необходимые вам методы и затем WebJob использует HttpClient для отправки веб-запроса на этот маршрут каждый час.

Код для этого второго параметра будет очень простым, например:

public static async Task UpdateTimer(["0 0 * * * *")] TimerInfo myTimer, ILogger log)
{
   log.LogInformation($"Timer Invoked: {DateTime.Now}");
   var httpClient = new HttpClient();
   await httpClient.GetAsync("https://my.url.com/special-route");            
}

Обе эти опции действительно не нужны Тебе тоже нужно быть WebJob. Их также можно запускать как отдельную функцию Azure, которая работает аналогично WebJob, но на самом деле не работает в контексте WebApp и позволяет управлять ею отдельно - если это может быть полезным. Просто мысль.

...