auto-sync: 2026-06-06 10:44:08
This commit is contained in:
@@ -1185,19 +1185,26 @@ async def handle_gitea_webhook(event: dict, x_gitea_event: str = Header(...)):
|
||||
```python
|
||||
# 在 daemon ticker 中
|
||||
async def check_stale_flows():
|
||||
"""扫描超时未回复的 Mail"""
|
||||
"""扫描超时未回复的 Mail,按个性化 deadline 判断"""
|
||||
# 1. 查所有 type=request 且无 in_reply_to 回复的 Mail
|
||||
stale_mails = queries.find_stale_requests(deadline_hours=4)
|
||||
# 每个 Mail 创建时在 metadata 中记录 deadline(基于 Mail 模板的时限)
|
||||
pending_mails = queries.find_pending_requests()
|
||||
|
||||
for mail in stale_mails:
|
||||
hours_overdue = (now() - mail.created_at).total_seconds() / 3600
|
||||
for mail in pending_mails:
|
||||
deadline_hours = mail.meta.get("deadline_hours", 8) # 默认 8 小时
|
||||
hours_elapsed = (now() - mail.created_at).total_seconds() / 3600
|
||||
|
||||
if hours_overdue < 8:
|
||||
if hours_elapsed < deadline_hours:
|
||||
continue # 未超时,跳过
|
||||
|
||||
hours_overdue = hours_elapsed - deadline_hours
|
||||
|
||||
if hours_overdue < 4:
|
||||
# 轻度:重发 Mail 提醒
|
||||
await send_mail(to=mail.to, title=f"提醒: {mail.title}",
|
||||
text=f"此任务已超时 {hours_overdue:.0f} 小时,请尽快处理。")
|
||||
|
||||
elif hours_overdue < 24:
|
||||
elif hours_overdue < 16:
|
||||
# 中度:spawn 庞统介入
|
||||
await spawn_agent("pangtong-fujunshi",
|
||||
f"流程卡住: Mail {mail.id} '{mail.title}' 超时 {hours_overdue:.0f} 小时未回复。请介入协调。")
|
||||
|
||||
Reference in New Issue
Block a user