retry method

Future<String> retry(
  1. String processId
)

Creates a new pending task from an existing task.

Implementation

Future<String> retry(String processId) async {
  final database = await _ensureInitialized();
  final oldTask = await getTask(processId);
  final newId = IdService.generate();
  final function = _memoryFunctions[processId];

  if (function != null) {
    _memoryFunctions[newId] = function;
  }

  await database.insert(
    tableName,
    {
      'process_id': newId,
      'parent_process_id': processId,
      'process_name': oldTask.processName,
      'state': QueueState.pending.name,
      'retry_count': oldTask.retryCount + 1,
      'priority': getPriorityValue(oldTask.priority),
      'created_at': DateTime.now().millisecondsSinceEpoch,
    },
  );

  unawaited(_startProcessing());

  return newId;
}