package org.infinispan.server.infinispan.task;
import java.util.concurrent.CompletableFuture;
import org.infinispan.tasks.TaskContext;
/**
* Used by ServerTaskEngine to executed ServerTasks
* <p/>
* Author: Michal Szynkiewicz, michal.l.szynkiewicz@gmail.com
* Date: 1/28/16
* Time: 9:33 AM
*/
public interface ServerTaskRunner {
/**
* Trigger execution of a ServerTask with given name.
* Returns a CompletableFuture, from which the result of execution can be obtained.
*
* @param taskName name of the task to be executed
* @param context task context injected into task upon execution
* @param <T> task return type
* @return completable future providing a way to get the result
*/
<T> CompletableFuture<T> execute(String taskName, TaskContext context);
}