跳到主要内容

ScheduleManager

Defined in: packages/rxdb-plugin-trigger/src/core/schedule-manager.ts:41

ScheduleManager - 定时调度管理器

负责 TriggerSchedule 实体的管理,支持 Cron 表达式定时触发任务。

核心概念:

  • Schedule 行作为持久化游标:lastTick/nextTick 记录已触发和下次触发时间
  • CAS 租约字段确保只有一个标签页处理错过的调度
  • 支持 catchUpPolicy 补齐策略(skip / once / replay-all)

补齐策略:

  • skip: 跳过所有错过的调度,不补发
  • once: 只补发最近一次错过的调度
  • replay-all: 补发所有错过的调度(最多 100 条,防止空转)

分布式安全:

  • 使用 CAS 原子操作获取调度锁,防止多标签页重复处理同一调度
  • lockedBy + leaseUntil 实现分布式租约

多时区支持:

  • 支持通过 timezone 指定 Cron 表达式的时区
  • upcoming 字段提供接下来 5 个触发时间的预计算

Constructors

Constructor

new ScheduleManager(
rxdb,
runManager,
tabId,
atomicTransition?,
options?): ScheduleManager;

Defined in: packages/rxdb-plugin-trigger/src/core/schedule-manager.ts:49

Parameters

ParameterType
rxdbRxDB
runManagerRunManager
tabIdstring
atomicTransition?AtomicTransition
options?{ catchUpPolicy?: CatchUpPolicy; leaseDurationMs?: number; }
options.catchUpPolicy?CatchUpPolicy
options.leaseDurationMs?number

Returns

ScheduleManager

Methods

activate()

activate(scheduleId): Promise<void>;

Defined in: packages/rxdb-plugin-trigger/src/core/schedule-manager.ts:143

Parameters

ParameterType
scheduleIdstring

Returns

Promise<void>


create()

create(options): Promise<ScheduleInfo>;

Defined in: packages/rxdb-plugin-trigger/src/core/schedule-manager.ts:64

Parameters

ParameterType
optionsScheduleCreateOptions

Returns

Promise<ScheduleInfo>


deactivate()

deactivate(scheduleId): Promise<void>;

Defined in: packages/rxdb-plugin-trigger/src/core/schedule-manager.ts:153

Parameters

ParameterType
scheduleIdstring

Returns

Promise<void>


del()

del(scheduleId): Promise<void>;

Defined in: packages/rxdb-plugin-trigger/src/core/schedule-manager.ts:165

Parameters

ParameterType
scheduleIdstring

Returns

Promise<void>


ensureTaskSchedule()

ensureTaskSchedule(options): Promise<ScheduleInfo>;

Defined in: packages/rxdb-plugin-trigger/src/core/schedule-manager.ts:81

Parameters

ParameterType
optionsScheduleCreateOptions

Returns

Promise<ScheduleInfo>


list()

list(taskId?): Promise<ScheduleInfo[]>;

Defined in: packages/rxdb-plugin-trigger/src/core/schedule-manager.ts:108

Parameters

ParameterType
taskId?string

Returns

Promise<ScheduleInfo[]>


processDueSchedules()

processDueSchedules(now, limit): Promise<number>;

Defined in: packages/rxdb-plugin-trigger/src/core/schedule-manager.ts:174

Parameters

ParameterType
nowDate
limitnumber

Returns

Promise<number>


releaseStaleScheduleLeases()

releaseStaleScheduleLeases(now, limit): Promise<void>;

Defined in: packages/rxdb-plugin-trigger/src/core/schedule-manager.ts:186

Parameters

ParameterType
nowDate
limitnumber

Returns

Promise<void>


retrieve()

retrieve(scheduleId): Promise<ScheduleInfo | undefined>;

Defined in: packages/rxdb-plugin-trigger/src/core/schedule-manager.ts:102

Parameters

ParameterType
scheduleIdstring

Returns

Promise<ScheduleInfo | undefined>


update()

update(scheduleId, options): Promise<ScheduleInfo>;

Defined in: packages/rxdb-plugin-trigger/src/core/schedule-manager.ts:125

Parameters

ParameterType
scheduleIdstring
optionsScheduleUpdateOptions

Returns

Promise<ScheduleInfo>