Skip to main content

admin_shutdown

Function admin_shutdown 

Source
pub async fn admin_shutdown() -> Result<Json<Value>, (StatusCode, Json<Value>)>
Expand description

POST /api/admin/shutdown — 优雅退出

返回 200 给客户端后 spawn 一个异步 task,1 秒后 std::process::exit(0)。 1 秒延迟给 HTTP 响应写回 socket + 客户端收到确认的时间。

为什么不做更精细的 drain(等正在执行的 trade 请求完成):

  • opend 典型部署在 systemd / Docker 里,shutdown 语义就是“让进程退出, supervisor 按策略决定是否重启“。
  • 正在执行的 broker trade 请求 client 端自己会超时重试,drain 没明显收益。
  • 并发场景(例如 LLM 同时 100 个 GetFunds)drain 逻辑复杂度 >> 简单 exit。

如果未来真需要 drain:可以加 shutdown flag,listener 进 “拒新收旧” 状态, 等所有 in-flight 完成再 exit(类似 nginx -s quit)。目前不做。