修复 ValidationQueue 重启恢复:启动时唤醒 Worker 处理 pending 任务

问题:服务重启后,reset_processing() 将中断任务恢复为 pending,
但没有发送信号唤醒 Worker,导致任务永远挂起。

修复:在 start() 中,启动 Worker 后根据 pending 任务数量发送信号,
确保恢复的任务能被立即消费和验证。
This commit is contained in:
祀梦
2026-04-02 12:42:05 +08:00
parent 66943df864
commit 25bfaf718e

View File

@@ -61,6 +61,12 @@ class ValidationQueue:
for i in range(self.worker_count):
self._workers.append(asyncio.create_task(self._worker_loop(i)))
# 唤醒 Worker 处理恢复的 pending 任务
if pending:
for _ in range(min(pending, self.worker_count)):
self._signal.put_nowait(None)
logger.info(f"ValidationQueue started with {self.worker_count} workers")
async def stop(self):