Skip to content

并发问题:Scheduler 中的共享状态缺少线程安全保护 #8

@Zld1994

Description

@Zld1994

问题描述

agentManager/engine/scheduler.py 中,SchedulerEngine 类的共享状态(execution_queue, running_tasks, completed_tasks)没有使用锁来保护,这可能导致并发问题。

受影响的代码

  • execution_queue: 使用 heapq 操作,不是线程安全的
  • running_tasks: 集合操作不是原子的
  • completed_tasks: 集合操作不是原子的

潜在问题

  1. 多个线程同时调用 execute_scheduled_tasks() 可能导致竞态条件
  2. 任务状态可能不一致
  3. 可能导致任务重复执行或丢失

建议修复

  1. 使用 threading.Lock 保护共享状态
  2. 或使用 queue.PriorityQueue 替代 heapq
  3. 添加并发测试用例

优先级

高 - 这是一个潜在的生产环境问题

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions