TaskDefinition<TPayload, TOutput>
Defined in: packages/rxdb-plugin-trigger/src/types.ts:172
TaskDefinition - 任务定义
定义一个可触发任务的完整配置。必须提供 id 和 run 函数,其余均为可选。
生命周期钩子执行顺序:
- onStart - 任务首次开始执行前
- onStartAttempt - 每次尝试开始前
- run - 实际业务逻辑
- catchError - 错误处理(可自定义重试行为)
- onSuccess / onFailure - 根据结果调用
- onComplete - 执行完成(无论成功失败)
- cleanup - 清理资源
Type Parameters
| Type Parameter | Default type |
|---|---|
TPayload | unknown |
TOutput | unknown |
Properties
catchError?
optional catchError?: (args) => CatchErrorResult | undefined;
Defined in: packages/rxdb-plugin-trigger/src/types.ts:194
错误捕获,可自定义重试行为
Parameters
| Parameter | Type |
|---|---|
args | { ctx: TriggerContext; error: SerializedError; payload: TPayload; } |
args.ctx | TriggerContext |
args.error | SerializedError |
args.payload | TPayload |
Returns
CatchErrorResult | undefined
cleanup?
optional cleanup?: (args) => Promise<void>;
Defined in: packages/rxdb-plugin-trigger/src/types.ts:214
清理资源,在 finally 阶段调用
Parameters
| Parameter | Type |
|---|---|
args | { ctx: TriggerContext; payload: TPayload; } |
args.ctx | TriggerContext |
args.payload | TPayload |
Returns
Promise<void>
executor?
optional executor?: "main" | "worker";
Defined in: packages/rxdb-plugin-trigger/src/types.ts:184
执行器类型: main-主线程, worker-Worker线程
id
id: string;
Defined in: packages/rxdb-plugin-trigger/src/types.ts:174
任务唯一标识
maxDuration?
optional maxDuration?: number;
Defined in: packages/rxdb-plugin-trigger/src/types.ts:180
最大执行时长(秒),超时后自动取消
middleware?
optional middleware?:
| MiddlewareFn<TPayload, TOutput>
| MiddlewareFn<TPayload, TOutput>[];
Defined in: packages/rxdb-plugin-trigger/src/types.ts:188
中间件函数数组
onCancel?
optional onCancel?: (args) => Promise<void>;
Defined in: packages/rxdb-plugin-trigger/src/types.ts:206
被取消时调用
Parameters
| Parameter | Type |
|---|---|
args | { ctx: TriggerContext; payload: TPayload; } |
args.ctx | TriggerContext |
args.payload | TPayload |
Returns
Promise<void>
onComplete?
optional onComplete?: (args) => Promise<void>;
Defined in: packages/rxdb-plugin-trigger/src/types.ts:208
执行完成时调用(无论成功或失败)
Parameters
| Parameter | Type |
|---|---|
args | { ctx: TriggerContext; payload: TPayload; result: { error?: SerializedError; ok: boolean; output?: TOutput; }; } |
args.ctx | TriggerContext |
args.payload | TPayload |
args.result | { error?: SerializedError; ok: boolean; output?: TOutput; } |
args.result.error? | SerializedError |
args.result.ok | boolean |
args.result.output? | TOutput |
Returns
Promise<void>
onFailure?
optional onFailure?: (args) => Promise<void>;
Defined in: packages/rxdb-plugin-trigger/src/types.ts:204
执行失败后调用
Parameters
| Parameter | Type |
|---|---|
args | { ctx: TriggerContext; error: SerializedError; payload: TPayload; } |
args.ctx | TriggerContext |
args.error | SerializedError |
args.payload | TPayload |
Returns
Promise<void>
onStart?
optional onStart?: (args) => Promise<void>;
Defined in: packages/rxdb-plugin-trigger/src/types.ts:190
任务开始前调用(首次尝试)
Parameters
| Parameter | Type |
|---|---|
args | { ctx: TriggerContext; payload: TPayload; } |
args.ctx | TriggerContext |
args.payload | TPayload |
Returns
Promise<void>
onStartAttempt?
optional onStartAttempt?: (args) => Promise<void>;
Defined in: packages/rxdb-plugin-trigger/src/types.ts:200
每次尝试开始前调用
Parameters
| Parameter | Type |
|---|---|
args | { ctx: TriggerContext; payload: TPayload; } |
args.ctx | TriggerContext |
args.payload | TPayload |
Returns
Promise<void>
onSuccess?
optional onSuccess?: (args) => Promise<void>;
Defined in: packages/rxdb-plugin-trigger/src/types.ts:202
执行成功后调用
Parameters
| Parameter | Type |
|---|---|
args | { ctx: TriggerContext; output: TOutput; payload: TPayload; } |
args.ctx | TriggerContext |
args.output | TOutput |
args.payload | TPayload |
Returns
Promise<void>
persistencePolicy?
optional persistencePolicy?: PersistencePolicy;
Defined in: packages/rxdb-plugin-trigger/src/types.ts:182
持久化策略
progressDebounce?
optional progressDebounce?: number;
Defined in: packages/rxdb-plugin-trigger/src/types.ts:186
进度上报防抖时长(毫秒)
queue?
optional queue?: QueueConfig;
Defined in: packages/rxdb-plugin-trigger/src/types.ts:178
队列配置
retry?
optional retry?: RetryConfig;
Defined in: packages/rxdb-plugin-trigger/src/types.ts:176
重试配置
run
run: (payload, ctx) => Promise<TOutput>;
Defined in: packages/rxdb-plugin-trigger/src/types.ts:192
任务核心执行函数
Parameters
| Parameter | Type |
|---|---|
payload | TPayload |
ctx | TriggerContext |
Returns
Promise<TOutput>