协程、Channel 与任务调度

工作划分

建议把接入、解析、链上查询、策略计算、提交与追踪分为可观测的处理阶段。耗时外部调用不占用唯一的全局调度循环;按链路或节点分别约束并发,避免单链异常耗尽全部执行资源。

Channel 的作用

Channel 适合进程内传递工作和背压,不等于持久队列。项目描述未提供持久任务存储实现;恢复方案需明确任务何时保存、谁负责重新扫描和如何防止重复领取。

调度上下文

每个任务携带取消上下文、截止时间、尝试次数和下次处理时间。重试使用带抖动的退避和总预算,等待确认的交易通过追踪调度继续观察,不长时间占住提交工作池。

关闭顺序

停止接收新任务,通知 worker 退出,给在途工作有限收尾时间,再释放连接。尚未完成的任务必须能区分未提交与已提交,以便下次恢复。

验证场景

单链节点阻塞、处理积压、取消任务、服务重启与关闭中收到回执。关注队列长度、等待时间、活跃 worker 和超时数量。