跳到主要内容

TaskDefinition<TPayload, TOutput>

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

TaskDefinition - 任务定义

定义一个可触发任务的完整配置。必须提供 id 和 run 函数,其余均为可选。

生命周期钩子执行顺序:

  1. onStart - 任务首次开始执行前
  2. onStartAttempt - 每次尝试开始前
  3. run - 实际业务逻辑
  4. catchError - 错误处理(可自定义重试行为)
  5. onSuccess / onFailure - 根据结果调用
  6. onComplete - 执行完成(无论成功失败)
  7. cleanup - 清理资源

Type Parameters

Type ParameterDefault type
TPayloadunknown
TOutputunknown

Properties

catchError?

optional catchError?: (args) => CatchErrorResult | undefined;

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

错误捕获,可自定义重试行为

Parameters

ParameterType
args{ ctx: TriggerContext; error: SerializedError; payload: TPayload; }
args.ctxTriggerContext
args.errorSerializedError
args.payloadTPayload

Returns

CatchErrorResult | undefined


cleanup?

optional cleanup?: (args) => Promise<void>;

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

清理资源,在 finally 阶段调用

Parameters

ParameterType
args{ ctx: TriggerContext; payload: TPayload; }
args.ctxTriggerContext
args.payloadTPayload

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

ParameterType
args{ ctx: TriggerContext; payload: TPayload; }
args.ctxTriggerContext
args.payloadTPayload

Returns

Promise<void>


onComplete?

optional onComplete?: (args) => Promise<void>;

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

执行完成时调用(无论成功或失败)

Parameters

ParameterType
args{ ctx: TriggerContext; payload: TPayload; result: { error?: SerializedError; ok: boolean; output?: TOutput; }; }
args.ctxTriggerContext
args.payloadTPayload
args.result{ error?: SerializedError; ok: boolean; output?: TOutput; }
args.result.error?SerializedError
args.result.okboolean
args.result.output?TOutput

Returns

Promise<void>


onFailure?

optional onFailure?: (args) => Promise<void>;

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

执行失败后调用

Parameters

ParameterType
args{ ctx: TriggerContext; error: SerializedError; payload: TPayload; }
args.ctxTriggerContext
args.errorSerializedError
args.payloadTPayload

Returns

Promise<void>


onStart?

optional onStart?: (args) => Promise<void>;

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

任务开始前调用(首次尝试)

Parameters

ParameterType
args{ ctx: TriggerContext; payload: TPayload; }
args.ctxTriggerContext
args.payloadTPayload

Returns

Promise<void>


onStartAttempt?

optional onStartAttempt?: (args) => Promise<void>;

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

每次尝试开始前调用

Parameters

ParameterType
args{ ctx: TriggerContext; payload: TPayload; }
args.ctxTriggerContext
args.payloadTPayload

Returns

Promise<void>


onSuccess?

optional onSuccess?: (args) => Promise<void>;

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

执行成功后调用

Parameters

ParameterType
args{ ctx: TriggerContext; output: TOutput; payload: TPayload; }
args.ctxTriggerContext
args.outputTOutput
args.payloadTPayload

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

ParameterType
payloadTPayload
ctxTriggerContext

Returns

Promise<TOutput>