schedule method

Future<void> schedule(
  1. ExecutableTask task, {
  2. int? lbms,
  3. Duration delay = const Duration(seconds: 1),
})

Implementation

Future<void> schedule(
  ExecutableTask task, {
  int? lbms,
  Duration delay = const Duration(seconds: 1),
}) {
  TaskExecutor? executor = executorForTask(task);

  if (executor == null) {
    throw Exception(
      "No executor found for task ${task.taskId} type ${task.runtimeType}",
    );
  }

  return ArcaneAdmin.tasks.scheduleTask(
    scheduleTime: DateTime.timestamp().add(delay),
    queue: queue,
    url: endpointUrl,
    body: {
      "lbms": lbms,
      "executor": executor.typeId,
      "task": ArtifactAccessor.all
          .select((t) => t.isArtifact(task))!
          .artifactToMap(task),
    },
  );
}