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
| Parameter | Type |
|---|---|
queueName | string |
Returns
boolean
canExecute()
canExecute(queueName): boolean;
Defined in: packages/rxdb-plugin-trigger/src/core/queue-engine.ts:37
canExecute - 检查是否可以执行新任务
当活跃任务数小于并发限制时返回 true。
Parameters
| Parameter | Type |
|---|---|
queueName | string |
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
| Parameter | Type |
|---|---|
queueName | string |
Returns
number
getState()
getState(queueName): QueueRuntimeState;
Defined in: packages/rxdb-plugin-trigger/src/core/queue-engine.ts:67
getState - 获取队列运行时状态
Parameters
| Parameter | Type |
|---|---|
queueName | string |
Returns
release()
release(queueName): void;
Defined in: packages/rxdb-plugin-trigger/src/core/queue-engine.ts:61
release - 释放队列槽位
减少活跃计数,允许新任务执行。
Parameters
| Parameter | Type |
|---|---|
queueName | string |
Returns
void
setLimit()
setLimit(queueName, limit): void;
Defined in: packages/rxdb-plugin-trigger/src/core/queue-engine.ts:23
setLimit - 设置队列并发限制
Parameters
| Parameter | Type | Description |
|---|---|---|
queueName | string | 队列名称 |
limit | number | 最大并发数 |
Returns
void