refactor(scheduler): 采用无锁设计,对统一调度器进行全面改造
- 用完全异步、无锁的架构替换传统的调度器 - 通过独立的执行上下文实现任务隔离 - 增加具有多级超时保护的全面死锁检测功能 - 引入健康评分和自动恢复机制 - 增加资源管理功能,并自动清理已完成的任务 - 实现可配置的并发控制和优雅降级 - 通过详细的执行历史记录,增强任务状态跟踪 - 通过适当的参数注入来改进事件处理 - 增加全面的统计和监控功能 - 保持与系统管理插件中状态字段的向后兼容性 重构后的调度器利用asyncio的单线程特性,消除了所有锁定机制,从而彻底防止死锁。每个任务都在完全隔离的状态下运行,确保故障不会影响其他任务。新架构包括多级超时保护、自动资源清理和全面的健康监测。
This commit is contained in:
@@ -190,7 +190,9 @@ class SystemCommand(PlusCommand):
|
||||
|
||||
response_parts = [f"📅 定时任务列表 (共 {len(tasks)} 个):"]
|
||||
for task in tasks:
|
||||
status = "▶️" if task["is_active"] else "⏸️"
|
||||
# 使用新的 status 字段,兼容旧版本
|
||||
is_active = task.get("status") == "PENDING" if "status" in task else task.get("is_active", False)
|
||||
status = "▶️" if is_active else "⏸️"
|
||||
recurring = "🔁" if task["is_recurring"] else "➡️"
|
||||
response_parts.append(
|
||||
f"{status} `{task['task_name']}` ({task['trigger_type']}) {recurring}\n"
|
||||
|
||||
Reference in New Issue
Block a user