跳到主要内容

QueueEngine

Defined in: packages/rxdb-plugin-trigger/src/core/queue-engine.ts:11

rxdb-plugin-trigger - RxDB 触发器插件

基于 RxDB 的分布式任务队列和定时调度插件,支持:

  • 任务触发与批量触发(trigger / triggerAndWait / batchTrigger)
  • 定时 Cron 调度(schedules API)
  • 实体变更触发(entityTriggers API)
  • DAG 工作流执行(WorkflowExecutor)
  • 多标签页协作与领导选举
  • 幂等性、并发控制、重试机制

Example

import { rxDBPluginTrigger } from 'rxdb-plugin-trigger';

const db = await createRxDatabase({ ... });
db.addPlugin(rxDBPluginTrigger());

const task = db.trigger.task({
id: 'my-task',
run: async (payload, ctx) => {
console.log('Running task:', payload);
return { result: 'done' };
}
});

// 触发任务
await task.trigger({ data: 'hello' });

// 触发并等待结果
const result = await task.triggerAndWait({ data: 'hello' });

Constructors

Constructor

new QueueEngine(): QueueEngine;

Returns

QueueEngine

Methods

acquire()

acquire(queueName): boolean;

Defined in: packages/rxdb-plugin-trigger/src/core/queue-engine.ts:49

acquire - 获取队列槽位

如果有可用槽位,返回 true 并增加活跃计数。 否则返回 false,不改变计数。

Parameters

ParameterType
queueNamestring

Returns

boolean


canExecute()

canExecute(queueName): boolean;

Defined in: packages/rxdb-plugin-trigger/src/core/queue-engine.ts:37

canExecute - 检查是否可以执行新任务

当活跃任务数小于并发限制时返回 true。

Parameters

ParameterType
queueNamestring

Returns

boolean


clear()

clear(): void;

Defined in: packages/rxdb-plugin-trigger/src/core/queue-engine.ts:76

clear - 清空所有队列状态

Returns

void


getLimit()

getLimit(queueName): number;

Defined in: packages/rxdb-plugin-trigger/src/core/queue-engine.ts:28

getLimit - 获取队列并发限制

Parameters

ParameterType
queueNamestring

Returns

number


getState()

getState(queueName): QueueRuntimeState;

Defined in: packages/rxdb-plugin-trigger/src/core/queue-engine.ts:67

getState - 获取队列运行时状态

Parameters

ParameterType
queueNamestring

Returns

QueueRuntimeState


release()

release(queueName): void;

Defined in: packages/rxdb-plugin-trigger/src/core/queue-engine.ts:61

release - 释放队列槽位

减少活跃计数,允许新任务执行。

Parameters

ParameterType
queueNamestring

Returns

void


setLimit()

setLimit(queueName, limit): void;

Defined in: packages/rxdb-plugin-trigger/src/core/queue-engine.ts:23

setLimit - 设置队列并发限制

Parameters

ParameterTypeDescription
queueNamestring队列名称
limitnumber最大并发数

Returns

void