You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Worker应用优雅关闭时长限制及可配置性技术问询

.NET Worker 应用优雅关闭时长相关问题解答

默认时长与.NET版本的关系

  • .NET 6及更早版本:默认优雅关闭超时为5秒。从测试案例中可验证:关闭时执行await Task.Delay(5000)能完整走完优雅关闭逻辑;而await Task.Delay(6000)超过5秒超时阈值,宿主会强制终止进程,导致后续优雅关闭代码无法执行。
  • .NET 7及之后版本:默认优雅关闭超时调整为25秒。测试中await Task.Delay(25000)能完成优雅关闭流程,若超时超过30秒则会被强制终止,与该版本的默认设定一致。

是否仅依赖.NET版本?

不是。虽然默认的优雅关闭时长由.NET版本定义,但开发者可以通过配置自定义该时长,因此它并不完全依赖于.NET版本。

是否支持配置?

支持,常用配置方式有两种:

1. 通过配置文件设置

在appsettings.json中添加Host节点配置:

{
  "Host": {
    "ShutdownTimeout": "00:00:30" // 自定义为30秒,格式为HH:mm:ss
  }
}

2. 通过代码直接配置

构建Host时,使用UseShutdownTimeout方法指定超时时间:

IHost host = Host.CreateDefaultBuilder(args)
    .ConfigureServices(services =>
    {
        services.AddHostedService<Worker>();
    })
    .UseShutdownTimeout(TimeSpan.FromSeconds(30)) // 自定义超时为30秒
    .Build();

内容的提问来源于stack exchange,提问作者Jesús López

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 19:43:16