Skip to content

MeshFlow Core API


MeshFlow Core API / MeshScheduler

Class: MeshScheduler<T, P, B, NM>

Defined in: engine/useScheduler.ts:24

[BOT] MeshScheduler — 引擎核心调度器

职责:

  1. 节点注册中心 — Path→UID 映射 / UID→Node 索引
  2. 拓扑推演入口 — notify / _batchNotify / _notifyAll 三种点火方式
  3. UI 刷新协调 — 收集脏节点 → rAF 批量触发 signalTrigger / emit
  4. 子系统编排 — 组装 useMeshTask / useSetEntangle / transactionScheduler

子系统:

  • _meshTaskSystem — 拓扑执行循环 (TaskRunner + flushQueue)
  • _entangleSystem — 纠缠预言与幽灵提案 (Turnstile)
  • _taskSchduler — 事务链调度器 (串行异步任务)
  • _timeScheduler — 时间切片管理器 (帧预算与 yield)

Type Parameters

T

T

P

P extends MeshPath

B

B extends Record<string, any> = StandardUITrigger<T>

NM

NM = any

Constructors

Constructor

new MeshScheduler<T, P, B, NM>(config, dependency, history, hooks, UITrigger): MeshScheduler<T, P, B, NM>

Defined in: engine/useScheduler.ts:79

Parameters

config
BACKPRESSURE_LIMIT

number

MAX_CONCURRENT_TASKS

number

NODE_QUOTA_PER_FRAME

number

useEntangleStep

number

useGreedy

boolean

dependency
_GetAllNextDependency

(targetUid) => number[]

_GetAllPrevDependency

(targetUid) => number[]

_GetNextDependency

(targetUid) => number[]

_GetPrevDependency

(targetUid) => number[]

_GetUidToLevelMap

() => Map<number, number>

GetDependencyOrder

() => number[][]

history

InternalMeshFlowHistory

hooks
callOnError

any

callOnStart

any

callOnSuccess

any

emit

MeshEmit

UITrigger

B

Returns

MeshScheduler<T, P, B, NM>

Methods

_batchNotify()

_batchNotify(updates, source?): void

Defined in: engine/useScheduler.ts:411

Parameters

updates

object[]

source?

number = 0

Returns

void


_requestUpdate()

_requestUpdate(): void

Defined in: engine/useScheduler.ts:201

Returns

void


flushUpdate()

flushUpdate(): Promise<void>

Defined in: engine/useScheduler.ts:177

Returns

Promise<void>


GetBucket()

GetBucket(bucketId): SchemaBucket<P>

Defined in: engine/useScheduler.ts:347

Parameters

bucketId

number

Returns

SchemaBucket<P>


GetGroupByPath()

GetGroupByPath(path): MeshFlowGroupNode<MeshPath>

Defined in: engine/useScheduler.ts:336

Parameters

path

MeshPath

Returns

MeshFlowGroupNode<MeshPath>


GetMaxUid()

GetMaxUid(): number

Defined in: engine/useScheduler.ts:353

Returns

number


GetNodeByPath()

GetNodeByPath(path): MeshFlowTaskNode<P, any, NM>

Defined in: engine/useScheduler.ts:314

Parameters

path

P

Returns

MeshFlowTaskNode<P, any, NM>


GetNodeByUid()

GetNodeByUid(uid): MeshFlowTaskNode<P, any, NM>

Defined in: engine/useScheduler.ts:326

Parameters

uid

number

Returns

MeshFlowTaskNode<P, any, NM>


GetPathByUid()

GetPathByUid(uid): P

Defined in: engine/useScheduler.ts:332

Parameters

uid

number

Returns

P


notify()

notify(path, key): void

Defined in: engine/useScheduler.ts:357

Parameters

path

P

key

SuggestKey<NM>

Returns

void


registerGroupNode()

registerGroupNode(groupMeta): MeshFlowGroupNode<P>

Defined in: engine/useScheduler.ts:292

Parameters

groupMeta

Omit<MeshFlowGroupNode<P>, "createView" | "calledBy" | "uid" | "dirtySignal">

Returns

MeshFlowGroupNode<P>


registerNode()

registerNode(nodeMeta): MeshFlowTaskNode<P, any, NM>

Defined in: engine/useScheduler.ts:261

Parameters

nodeMeta

Omit<MeshFlowTaskNode<P>, "createView" | "proxy" | "dependOn" | "calledBy" | "uid" | "dirtySignal" | "nodeBucket" | "_syncCache">

Returns

MeshFlowTaskNode<P, any, NM>


SetBucket()

SetBucket(newBucket): number

Defined in: engine/useScheduler.ts:343

Parameters

newBucket

SchemaBucket<P>

Returns

number

Internal


SilentSet()

SilentSet(path, key, value): boolean

Defined in: engine/useScheduler.ts:490

Parameters

path

P

key

SuggestKey<NM>

value

any

Returns

boolean

Properties

_flushPathPendingMap

_flushPathPendingMap: number[] = []

Defined in: engine/useScheduler.ts:47


_timeScheduler

_timeScheduler: object

Defined in: engine/useScheduler.ts:64

_getIsFirstFrame

_getIsFirstFrame: () => boolean

Returns

boolean

_shouldYield()

_shouldYield(): boolean

Returns

boolean

_yieldToMain()

_yieldToMain(): Promise<void>

Returns

Promise<void>

reset()

reset(): void

Returns

void


config

config: object

Defined in: engine/useScheduler.ts:80

BACKPRESSURE_LIMIT

BACKPRESSURE_LIMIT: number

MAX_CONCURRENT_TASKS

MAX_CONCURRENT_TASKS: number

NODE_QUOTA_PER_FRAME

NODE_QUOTA_PER_FRAME: number

useEntangleStep

useEntangleStep: number

useGreedy

useGreedy: boolean


dependency

dependency: object

Defined in: engine/useScheduler.ts:81

_GetAllNextDependency

_GetAllNextDependency: (targetUid) => number[]

Parameters
targetUid

number

Returns

number[]

_GetAllPrevDependency

_GetAllPrevDependency: (targetUid) => number[]

Parameters
targetUid

number

Returns

number[]

_GetNextDependency

_GetNextDependency: (targetUid) => number[]

Parameters
targetUid

number

Returns

number[]

_GetPrevDependency

_GetPrevDependency: (targetUid) => number[]

Parameters
targetUid

number

Returns

number[]

_GetUidToLevelMap

_GetUidToLevelMap: () => Map<number, number>

Returns

Map<number, number>

GetDependencyOrder

GetDependencyOrder: () => number[][]

Returns

number[][]


dispose

dispose: () => void

Defined in: engine/useScheduler.ts:56

Returns

void


history

history: InternalMeshFlowHistory

Defined in: engine/useScheduler.ts:89


hooks

hooks: object

Defined in: engine/useScheduler.ts:90

callOnError

callOnError: any

callOnStart

callOnStart: any

callOnSuccess

callOnSuccess: any

emit

emit: MeshEmit


SettleTasks

SettleTasks: (array) => void

Defined in: engine/useScheduler.ts:61

Parameters

array

TransactionArray<P, NM>

Returns

void


uid

uid: number = 0

Defined in: engine/useScheduler.ts:30


UITrigger

UITrigger: B

Defined in: engine/useScheduler.ts:91

⧩ MeshFlow — 确定性拓扑编排引擎