簡體   English   中英

延長 BackgroundService 的關閉超時

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM