package org.infinispan.tasks.spi; import java.util.List; import java.util.concurrent.CompletableFuture; import org.infinispan.tasks.Task; import org.infinispan.tasks.TaskContext; /** * TaskEngine. An implementation of an engine for executing tasks. How the tasks are implemented is * dependent on the engine itself. * * @author Tristan Tarrant * @since 8.1 */ public interface TaskEngine { /** * Returns the name of the engine */ String getName(); /** * Returns the list of tasks managed by this engine * * @return */ List<Task> getTasks(); /** * Executes the named task on the specified cache, passing a map of named parameters. * * @param taskName the name of the task * @param context a task context * @return */ <T> CompletableFuture<T> runTask(String taskName, TaskContext context); /** * Returns whether this task engine knows about a specified named task * * @param taskName * @return */ boolean handles(String taskName); }