package io.trygvis.async; import io.trygvis.queue.Queue; import io.trygvis.queue.QueueExecutor; import io.trygvis.queue.QueueService; import io.trygvis.queue.Task; import io.trygvis.queue.TaskEffect; import java.sql.SQLException; import java.util.Date; import java.util.List; /** * A simple framework for running tasks. */ public interface AsyncService { QueueController registerQueue(Queue queue, QueueService.TaskExecutionRequest req, TaskEffect processor) throws SQLException; QueueExecutor getQueue(String name); Task schedule(Queue queue, Date scheduled, List args); Task schedule(Queue queue, long parent, Date scheduled, List args); /** * Polls for a new state of the execution. */ Task update(Task ref); }