SuperAPI AI 工具集

graceful-shutdown

数据与分析

查看项目

更新于 10-15 20:30

技能介绍

用途:在进程收到终止信号时安全退出,避免数据丢失或状态损坏。适用于运行后台 worker、处理队列或流、持久化前缓冲数据,以及任何处理状态的长期运行进程。

主要能力:捕获 SIGTERM/SIGINT 信号;跟踪在途任务并支持超时强制完成;排空缓冲区并统计已刷新与丢弃数量;执行清理回调以正确关闭连接。关闭流程为:收到信号后停止接受新工作,等待在途任务,排空缓冲区,运行清理回调,最后退出。

使用方式:提供 TypeScript 与 Python 实现。TypeScript 通过 getShutdownHandler() 获取单例,调用 registerSignals() 注册信号,用 onShutdown() 注册清理回调、onDrain() 注册排空回调,用 trackJob()/completeJob() 跟踪任务,isShutdownInProgress() 判断是否正在关闭。Python 通过 get_shutdown_handler() 获取单例,register_signals() 注册信号,on_shutdown()/on_drain() 注册回调,track_job()/complete_job() 跟踪任务。

限制与注意:资料未提供安装命令、包名、版本或平台要求。需在应用启动早期注册信号;关闭期间不应开始新工作;清理回调应设置超时;应先排空缓冲区再关闭连接。常见错误包括未注册信号处理器、关闭期间启动新工作、清理回调无超时、忘记跟踪在途任务、先关连接后排空缓冲。