runIsolateTask<I, T> method

Future<T?> runIsolateTask<I, T>(
  1. LevitIsolateTask<I, T> task,
  2. I input, {
  3. String? id,
  4. TaskPriority priority = TaskPriority.normal,
  5. TaskConflictPolicy conflictPolicy = TaskConflictPolicy.reject,
  6. int retries = 0,
  7. Duration? retryDelay,
  8. bool useExponentialBackoff = true,
  9. double weight = 1.0,
  10. void onError(
    1. Object error,
    2. StackTrace stackTrace
    )?,
  11. TaskCachePolicy<T>? cachePolicy,
  12. LevitTaskMetadata? metadata,
  13. String? debugName,
})

Executes a top-level/static isolate task and tracks its state.

Implementation

Future<T?> runIsolateTask<I, T>(
  LevitIsolateTask<I, T> task,
  I input, {
  String? id,
  TaskPriority priority = TaskPriority.normal,
  TaskConflictPolicy conflictPolicy = TaskConflictPolicy.reject,
  int retries = 0,
  Duration? retryDelay,
  bool useExponentialBackoff = true,
  double weight = 1.0,
  void Function(Object error, StackTrace stackTrace)? onError,
  TaskCachePolicy<T>? cachePolicy,
  LevitTaskMetadata? metadata,
  String? debugName,
}) {
  return _runTrackedIsolateTask<I, T>(
    task,
    input,
    id: id,
    priority: priority,
    conflictPolicy: conflictPolicy,
    retries: retries,
    retryDelay: retryDelay,
    useExponentialBackoff: useExponentialBackoff,
    weight: weight,
    onError: onError,
    cachePolicy: cachePolicy,
    metadata: metadata,
    debugName: debugName,
  );
}