首页 理论 架构 工程 文档 白皮书 著作 研究 案例 下载 博客 关于 开始使用 →

第七十四章 运行时调度器工程实现WSaiOS Runtime Scheduler Implementation

第七十四章

WSaiOS Runtime Scheduler Implementation

运行时调度器工程实现


74.1 Runtime Scheduler概述

前一章完成了:

Execution Engine

实现了:

Action
    ↓
Execution Queue
    ↓
Dispatcher
    ↓
Executor

但是:

Execution Engine 只是执行动作。

真正决定:

  • 哪个任务先执行;
  • 哪个任务暂停;
  • 哪个任务恢复;
  • 哪个任务取消;

都属于:

Runtime Scheduler


74.1.1 工程定义

Runtime Scheduler 是 WSaiOS 的运行时调度中心。

负责:

  • Task Scheduling(任务调度)
  • Priority Scheduling(优先级)
  • Resource Scheduling(资源调度)
  • Timeout Control(超时控制)
  • Retry Management(失败重试)
  • Task Lifecycle(生命周期)

注意:

Scheduler 不负责:

  • 推理
  • 决策
  • 执行逻辑

它只负责:

什么时候执行。


74.2 调度器位置

整体流程:

Decision Engine
        │
        ▼
 Action Queue
        │
        ▼
Runtime Scheduler
        │
        ▼
Execution Engine
        │
        ▼
Result

因此:

Scheduler 位于:

Decision 与 Execution 之间。


74.3 Scheduler核心架构

Runtime Scheduler

        │

 ┌──────┼────────────┐

 ▼      ▼            ▼

Queue  Priority   Resource

Manager Manager    Manager

        │

        ▼

 Dispatcher

各模块职责:

Queue Manager

维护等待队列。

Priority Manager

决定:

先执行谁。

Resource Manager

判断:

是否有资源。

Dispatcher

交给Execution。


74.4 Task对象

Action属于动作。

Scheduler调度的是:

Task。

Task:

可以包含:

多个Action。

例如:

Task

Generate Website

├── Generate Content

├── Generate FAQ

├── Publish

└── Notify

因此:

Task:

高于:

Action。


Python:

class Task:

    def __init__(self):

        self.task_id=""

        self.actions=[]

        self.priority=5

        self.status="waiting"

74.5 Priority Scheduling

WSaiOS采用:

Priority Queue。

例如:

Priority 说明
1 Highest
2 High
3 Normal
4 Low
5 Background

调度:

永远:

先Priority最小。

Python:

import heapq

即可实现。


74.6 Resource Scheduling

任务:

不是一直能运行。

例如:

CPU:

CPU > 90%

那么:

暂停:

SEO Generation

等待:

CPU恢复。

Resource Manager:

负责:

CPU

Memory

Disk

Network

判断。


74.7 Timeout Control

例如:

HTTP:

30秒。

超过:

终止。

Python:

timeout=30

状态:

Running

↓

Timeout

↓

Retry

74.8 Retry机制

不是:

失败结束。

而是:

例如:

Retry = 3

失败:

Attempt 1

↓

Attempt 2

↓

Attempt 3

↓

Failed

重试策略:

class RetryPolicy:

    max_retry=3

74.9 Scheduler状态机

Task:

生命周期:

Created

↓

Waiting

↓

Scheduled

↓

Running

↓

Completed

异常:

Running

↓

Timeout

↓

Retry

↓

Completed

取消:

Running

↓

Cancel

↓

Stopped

建议统一采用有限状态机(FSM)实现状态转换,每个状态只能迁移到预定义的下一个状态,避免状态混乱。


74.10 Runtime Event

Scheduler:

通过事件:

控制。

例如:

TaskCreated

TaskStarted

TaskCompleted

TaskTimeout

TaskRetry

TaskCanceled

统一:

Event Bus:

发送。


74.11 Scheduler目录

runtime/

├── scheduler.py
├── queue_manager.py
├── priority_manager.py
├── resource_manager.py
├── timeout_manager.py
├── retry_manager.py
├── lifecycle.py
└── task.py

74.12 Scheduler主循环

class RuntimeScheduler:

    def run(self):

        while True:

            task=self.queue.next()

            if task is None:

                continue

            if not self.resource.available(task):

                continue

            self.dispatch(task)

这里可以进一步增加:

  • 空闲等待(避免CPU空转)
  • 停止信号
  • 定时任务唤醒

作为 v1.1 优化。


74.13 最小验证实验

创建:

三个Task:

Task A

Priority=1

Task B

Priority=3

Task C

Priority=2

执行:

Scheduler。

预期:

Task A

↓

Task C

↓

Task B

如果:

CPU:

95%

则:

Task C

↓

Waiting

CPU恢复:

继续执行。

验证:

  • Priority 是否正确;
  • Resource 是否生效;
  • Timeout 是否触发;
  • Retry 是否工作;
  • 状态是否符合生命周期。

74.14 WSaiOS Runtime Scheduler v1.0

                 Runtime Scheduler

                         │

     ┌──────────┬──────────┬──────────┐

     ▼          ▼          ▼

 Queue      Priority   Resource

 Manager     Manager    Manager

                         │

            ┌────────────┴────────────┐

            ▼                         ▼

     Timeout Manager          Retry Manager

                         │

                         ▼

                   Execution Engine

74.15 本章总结

完成:

WSaiOS Runtime Scheduler Implementation

实现:

  • Task模型
  • Priority Queue
  • Resource Scheduling
  • Timeout Control
  • Retry Policy
  • Task Lifecycle(FSM)
  • Runtime Event
  • Scheduler主循环

至此,WSaiOS 已经完成了认知层(Perception → Decision)和执行层(Scheduler → Execution)的基本工程框架。下一章建议进入第七十五章:WSaiOS Plugin Framework Implementation(插件框架工程实现),将执行能力扩展到可插拔模块,而不是把插件机制混入执行引擎本身。这种分层更符合长期演进和工程维护。

Leave a Reply

Your email address will not be published. Required fields are marked *