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
| Parameter | Type |
|---|---|
rxdb | RxDB |
runManager | RunManager |
tabId | string |
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
| Parameter | Type |
|---|---|
scheduleId | string |
Returns
Promise<void>
create()
create(options): Promise<ScheduleInfo>;
Defined in: packages/rxdb-plugin-trigger/src/core/schedule-manager.ts:64
Parameters
| Parameter | Type |
|---|---|
options | ScheduleCreateOptions |
Returns
Promise<ScheduleInfo>
deactivate()
deactivate(scheduleId): Promise<void>;
Defined in: packages/rxdb-plugin-trigger/src/core/schedule-manager.ts:153
Parameters
| Parameter | Type |
|---|---|
scheduleId | string |
Returns
Promise<void>
del()
del(scheduleId): Promise<void>;
Defined in: packages/rxdb-plugin-trigger/src/core/schedule-manager.ts:165
Parameters
| Parameter | Type |
|---|---|
scheduleId | string |
Returns
Promise<void>
ensureTaskSchedule()
ensureTaskSchedule(options): Promise<ScheduleInfo>;
Defined in: packages/rxdb-plugin-trigger/src/core/schedule-manager.ts:81
Parameters
| Parameter | Type |
|---|---|
options | ScheduleCreateOptions |
Returns
Promise<ScheduleInfo>
list()
list(taskId?): Promise<ScheduleInfo[]>;
Defined in: packages/rxdb-plugin-trigger/src/core/schedule-manager.ts:108
Parameters
| Parameter | Type |
|---|---|
taskId? | string |
Returns
Promise<ScheduleInfo[]>
processDueSchedules()
processDueSchedules(now, limit): Promise<number>;
Defined in: packages/rxdb-plugin-trigger/src/core/schedule-manager.ts:174
Parameters
| Parameter | Type |
|---|---|
now | Date |
limit | number |
Returns
Promise<number>
releaseStaleScheduleLeases()
releaseStaleScheduleLeases(now, limit): Promise<void>;
Defined in: packages/rxdb-plugin-trigger/src/core/schedule-manager.ts:186
Parameters
| Parameter | Type |
|---|---|
now | Date |
limit | number |
Returns
Promise<void>
retrieve()
retrieve(scheduleId): Promise<ScheduleInfo | undefined>;
Defined in: packages/rxdb-plugin-trigger/src/core/schedule-manager.ts:102
Parameters
| Parameter | Type |
|---|---|
scheduleId | string |
Returns
Promise<ScheduleInfo | undefined>
update()
update(scheduleId, options): Promise<ScheduleInfo>;
Defined in: packages/rxdb-plugin-trigger/src/core/schedule-manager.ts:125
Parameters
| Parameter | Type |
|---|---|
scheduleId | string |
options | ScheduleUpdateOptions |
Returns
Promise<ScheduleInfo>