[英]Extending the shutdown timeout for BackgroundService
我有一個 class 派生自BackgroundService
並作為托管服務添加到我的Startup.cs
中。 在StopAsync()
方法中,我正在執行一些相當長的任務。 由於Host.cs
( 鏈接到源代碼)class 中的ShutdownTimeout
選項,其中一些無法完成。
我的解決方案是使用IWebHostBuilder.UseShutdownTimeout()
設置ShutdownTimeout
,但它對后台服務沒有影響。
private static IHostBuilder CreateHostBuilder(string[] args)
{
return Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseShutdownTimeout(TimeSpan.FromSeconds(60));
webBuilder.UseStartup<Startup>();
})
.UseWindowsService();
}
有沒有辦法為BackgroundService
設置UseShutdownTimeout
?
就在這里
.ConfigureServices((hostContext, services) =>
{
services.Configure<HostOptions>(opts => opts.ShutdownTimeout = TimeSpan.FromSeconds(30));
}
我認為它可以在 Microsoft.Extensions.DependencyInjection package 中找到。 從您發布的代碼看來,您使用的虛擬主機與 Windows 服務或控制台應用程序不同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.