enqueueCall<TArgs, TResult> method

  1. @override
Future<String> enqueueCall<TArgs, TResult>(
  1. TaskCall<TArgs, TResult> call, {
  2. TaskEnqueueOptions? enqueueOptions,
})
override

Enqueue a typed task using an explicit TaskCall transport object, typically produced by TaskDefinition.buildCall(...).

Implementation

@override
Future<String> enqueueCall<TArgs, TResult>(
  TaskCall<TArgs, TResult> call, {
  TaskEnqueueOptions? enqueueOptions,
}) {
  final definition = call.definition;
  final resolvedOptions = call.resolveOptions();
  final metadata = definition.metadata;
  return _enqueueResolved(
    name: call.name,
    args: call.encodeArgs(),
    headers: call.headers,
    options: resolvedOptions,
    fallbackOptions: definition.defaultOptions,
    notBefore: call.notBefore,
    meta: call.meta,
    enqueueOptions: enqueueOptions ?? call.enqueueOptions,
    metadata: metadata,
    argsEncoder: _resolveArgsEncoderFromMetadata(metadata),
    resultEncoder: _resolveResultEncoderFromMetadata(metadata),
  );
}