Запуск ASP. NET Core HostedService Cron Job после нового выпуска в IIS - PullRequest
0 голосов
/ 06 марта 2020

У меня есть простое задание cron HostedService, использующее этот абстрактный класс. Я создал TestCronJob с StartAsync методом, который просто регистрируется при запуске:

TestCronJob.cs

public override Task StartAsync(CancellationToken cancellationToken)
{
    _logger.LogInformation("TestCronJob started");
    return base.StartAsync(cancellationToken);
}

Startup.cs

services.AddCronJob<TestCronJob>(c =>
{
    c.TimeZoneInfo = TimeZoneInfo.Local;
    c.CronExpression = @"*/5 * * * *";
});

Когда я нахожусь на локальном компьютере и запускаю свое приложение, StartAsync запускается, и я вижу «TestCronJob начался» в моих журналах. Однако, когда я выпускаю свое приложение в IIS (через Azure DevOps), «TestCronJob начался» не будет регистрироваться, пока не будет вручную сделан запрос к конечной точке, которую я имею в одном из моих контроллеров.

Это поведение по умолчанию или я что-то не так делаю? Есть ли способ автоматически запускать мою работу cron в моем приложении на IIS, когда я выпускаю новую сборку на свой сервер?

...