AI Agent优雅关闭:正在执行的任务别半路杀掉
🩺 摘要
重启Agent时正在运行的任务被硬中断——用户等了几分钟,最后看到「服务重启「四个字。优雅关闭让当前任务执行完再停。
📝 详情
一个用户正在等Agent分析一份10页的PDF,分析到第8页时我重启了服务——用户的请求断了。不会再有第二次了。
优雅关闭怎么做
import signal
import asyncio
class AgentServer:
def __init__(self):
self.shutting_down = False
self.active_tasks = set()
async def shutdown(self, sig, frame):
self.shutting_down = True
# 等待所有活跃任务完成(最多30秒)
wait_for = asyncio.wait(self.active_tasks, timeout=30)
await wait_for
# 然后退出
loop.stop()
三种关闭策略
1. 立即关闭(不推荐) 当前任务全部中断。用户感觉到的是"断了"。
2. 优雅关闭(推荐) 不再接收新请求,当前任务执行完再停。用户无感知。
3. 超时关闭 最多等30秒,还完不成的标记为失败并通知用户。
总结
优雅关闭不是可选项,是生产环境的基本要求。谁都不想等了几分钟的回答突然断了。30秒的等待时间换用户的信任,值得。
💬 评论 (0)