Shutdown Check

搜索文档

查找页面或章节

SC311:排空期间接受了新请求

SC311(排空期间接受了新请求)表示撤回就绪状态之后,新发送的请求没有被拒绝。修复方法是返回 503,或者停止监听。

SC311 表示就绪状态撤回之后、旧请求仍在排空时,服务接受了新的工作。进程退出时,这些新工作可能会被切断。

诊断码SC311 FAIL
阶段排空流量
CLI 退出码1
含义撤回就绪状态后发送的新请求得到了正常响应,没有被拒绝。
输出信息
  • New request was not rejected during drain: <status>
首先检查关闭期间用 rejectStatuses 中的状态码(默认 503)拒绝新的工作,或者停止接受连接。

服务应该如何拒绝新请求?

二选一:

  • 在短暂的排空窗口内继续监听,对新请求返回 503。
  • 关闭监听器,让连接被拒绝。

然后让 newRequests.rejectStatuses 和 newRequests.allowConnectionRefused 与你的选择保持一致。

shutdown-check.json
{
  "shutdown": {
    "readinessWithdrawal": true,
    "newRequests": {
      "path": "/test/new-work",
      "rejectStatuses": [503],
      "allowConnectionRefused": true
    }
  }
}

超时不算拒绝。服务必须返回配置中的状态码,或者明确拒绝连接。

如何确认已修复?

时间线应在 readiness withdrawn 之后、原来的请求结束之前,显示 new request rejected — HTTP 503 或连接被拒绝。

用于拒绝测试的路由要安全,也要有代表性。一个总是返回 503 的特殊路由能让测试通过,却证明不了真正的新工作会被挡住。