Код: Выделить всё
var builder = WebApplication.CreateBuilder(args);
builder
.RegisterSharedServices()
.Services
.AddSingleton();
// Add Controllers
builder
.AddCoreApiSupport() // that's custom
. ...();
// Host
builder
.Services
.AddHostedService();
var webApp = builder.Build();
...
webApp.SetupApiSupport();
await webApp.RunAsync();
.
По сути, я запуск реализации BackgroundService с поддержкой API поверх нее в контейнере Docker Linux.
Я хочу захватывать и обрабатывать сигнал SIGTERM с помощью средства CancellationToken, который распространяется повсюду. Его «точка входа» находится здесь, в реализации класса, производного от BackgroundService:
Код: Выделить всё
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
Мой вопрос: что мне нужно изменить, чтобы мой CancellationToken срабатывал при закрытии Docker-контейнера?
Я тоже это пробовал:
Код: Выделить всё
appLifetime.ApplicationStopping.Register(() =>
{
Console.WriteLine("Stopping!");
});
Подробнее здесь: https://stackoverflow.com/questions/793 ... er-sigterm
Мобильная версия