package org.zstack.core.job;
import org.zstack.header.core.Completion;
import org.zstack.header.core.ReturnValueCompletion;
import java.util.List;
public interface JobQueueFacade {
void execute(String queueName, String owner, Job job);
<T> void execute(String queueName, String owner, Job job, ReturnValueCompletion<T> complete, Class<? extends T> returnType);
void execute(String queueName, String owner, Job job, Completion complete);
void deleteJobQueue(String queueName);
void evictOwner(String owner);
List<String> listAllQueue();
List<String> listQueue(String namePattern);
long getPendingJobNumber(String queueName);
List<String> listQueueHasPendingJob();
boolean startQueueIfPendingJob(String queueName, String owner);
boolean startQueueIfPendingJob(String queueName, String owner, boolean newThread);
}