Как использовать токены отмены в IHostedService? - PullRequest
0 голосов
/ 30 апреля 2018

Документация ASP.NET Core 2.0 определяет интерфейс IHostedService следующим образом:

StartAsync (CancellationToken) - вызывается после запуска сервера и запуска IApplicationLifetime.ApplicationStarted. StartAsync содержит логику для запуска фоновой задачи.

StopAsync (CancellationToken) - срабатывает, когда хост выполняет постепенное завершение работы. StopAsync содержит логику для завершения фоновой задачи и удаления любых неуправляемых ресурсов. Если приложение неожиданно завершает работу (например, происходит сбой процесса приложения), StopAsync может не вызываться.

Если StopAsync вызывается для отключения службы, для чего используются параметры токена отмены? Как именно их следует использовать?

1 Ответ

0 голосов
/ 30 апреля 2018

Токен отмены, переданный IHostedService.StopAsync(), происходит от WebHost.StopAsync() и обычно является токеном отмены, который привязан к команде отключения по умолчанию для основного приложения ASP.NET (например, CTRL + C или SIGTERM). Этот токен связан с новым токеном, который привязан к (настраиваемому) тайм-ауту. Например, см. RunAsync() метод расширения . Я считаю, что время ожидания по умолчанию составляет 5 секунд. Это означает, что отмена будет запрошена, когда хост вызовет Cancel() на источнике токена или когда истечет время ожидания.

...