跳到主要内容

RxDBPluginTrigger

Defined in: packages/rxdb-plugin-trigger/src/plugin.ts:95

RxDBPluginTrigger - RxDB 触发器插件主类

将任务运行时挂载到 RxDB 实例上,负责以下职责:

核心架构:

  • 任务注册与触发(trigger / triggerAndWait / batchTrigger)
  • 队列管理:基于领导选举的分布式队列消费
  • 调度管理:基于 Cron 的定时任务执行
  • 实体触发器:监听 RxDB 实体变化自动触发任务

多标签页协作:

  • 状态存储在共享的 RxDB 实体中,多标签页可观察同一批运行记录
  • 通过领导选举(Leader Election)确保队列消费和调度执行的单点写入
  • 使用 CAS(Compare-And-Swap)原子操作实现分布式锁,防止重复执行

数据生命周期:

  • TriggerRun: 存储每次任务运行的完整状态
  • TriggerSchedule: 存储定时调度的配置和游标
  • TriggerIdempotencyKey: 存储幂等键,防止重复触发
  • TriggerQueue: 存储队列的并发配置
  • TriggerWorkflowRun / TriggerWorkflowNodeRun: 存储工作流运行状态

Extends

Implements

Constructors

Constructor

new RxDBPluginTrigger(rxdb, options?): RxDBPluginTrigger;

Defined in: packages/rxdb-plugin-trigger/src/plugin.ts:126

Parameters

ParameterType
rxdbRxDB
options?TriggerPluginOptions

Returns

RxDBPluginTrigger

Overrides

RxDBPluginBase.constructor

Properties

capabilities

readonly capabilities: TriggerCapabilities;

Defined in: packages/rxdb-plugin-trigger/src/plugin.ts:120


debounceManager

readonly debounceManager: DebounceManager;

Defined in: packages/rxdb-plugin-trigger/src/plugin.ts:118


entityTriggerManager

readonly entityTriggerManager: EntityTriggerManager;

Defined in: packages/rxdb-plugin-trigger/src/plugin.ts:119


entityTriggers

readonly entityTriggers: EntityTriggersAPI;

Defined in: packages/rxdb-plugin-trigger/src/plugin.ts:124


executorBridge

readonly executorBridge: ExecutorBridge;

Defined in: packages/rxdb-plugin-trigger/src/plugin.ts:116


name

name: Uncapitalize<string> = 'trigger';

Defined in: packages/rxdb-plugin-trigger/src/plugin.ts:106

Implementation of

IRxDBPlugin.name


queueEngine

readonly queueEngine: QueueEngine;

Defined in: packages/rxdb-plugin-trigger/src/plugin.ts:109


registry

readonly registry: TaskRegistry;

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


retentionCleaner

readonly retentionCleaner: RetentionCleaner;

Defined in: packages/rxdb-plugin-trigger/src/plugin.ts:113


runManager

readonly runManager: RunManager;

Defined in: packages/rxdb-plugin-trigger/src/plugin.ts:110


runs

readonly runs: RunsAPI;

Defined in: packages/rxdb-plugin-trigger/src/plugin.ts:122


runtimeAdapter

readonly runtimeAdapter: RuntimeAdapter;

Defined in: packages/rxdb-plugin-trigger/src/plugin.ts:115


rxdb

protected readonly rxdb: RxDB;

Defined in: packages/rxdb/dist/rxdb-plugin.d.ts:14

Inherited from

RxDBPluginBase.rxdb


scheduleClock

readonly scheduleClock: ScheduleClock;

Defined in: packages/rxdb-plugin-trigger/src/plugin.ts:112


scheduleManager

readonly scheduleManager: ScheduleManager;

Defined in: packages/rxdb-plugin-trigger/src/plugin.ts:111


schedules

readonly schedules: SchedulesAPI;

Defined in: packages/rxdb-plugin-trigger/src/plugin.ts:123


storageMonitor

readonly storageMonitor: StorageMonitor;

Defined in: packages/rxdb-plugin-trigger/src/plugin.ts:114


tabId

readonly tabId: string;

Defined in: packages/rxdb-plugin-trigger/src/plugin.ts:121


workflowExecutor

readonly workflowExecutor: WorkflowExecutor;

Defined in: packages/rxdb-plugin-trigger/src/plugin.ts:117

Methods

destroy()

destroy(): void;

Defined in: packages/rxdb-plugin-trigger/src/plugin.ts:293

Returns

void

Implementation of

IRxDBPlugin.destroy


install()

install(): void;

Defined in: packages/rxdb-plugin-trigger/src/plugin.ts:256

Returns

void

Implementation of

IRxDBPlugin.install


task()

task<TPayload, TOutput>(taskDef): TaskHandle<TPayload, TOutput>;

Defined in: packages/rxdb-plugin-trigger/src/plugin.ts:313

Type Parameters

Type ParameterDefault type
TPayloadunknown
TOutputunknown

Parameters

ParameterType
taskDefTaskDefinition<TPayload, TOutput>

Returns

TaskHandle<TPayload, TOutput>