package net.johnewart.gearman.common.interfaces;
import net.johnewart.gearman.common.JobStatus;
import net.johnewart.gearman.common.events.GearmanClientEventListener;
import net.johnewart.gearman.constants.JobPriority;
import net.johnewart.gearman.exceptions.JobSubmissionException;
import net.johnewart.gearman.exceptions.WorkException;
import java.util.Date;
public interface GearmanClient {
String submitFutureJob(String callback, byte[] data, Date whenToRun) throws JobSubmissionException;
String submitJobInBackground(String callback, byte[] data) throws JobSubmissionException;
String submitJobInBackground(String callback, byte[] data, JobPriority priority) throws JobSubmissionException;
byte[] submitJob(String callback, byte[] data) throws JobSubmissionException, WorkException;
byte[] submitJob(String callback, byte[] data, JobPriority priority) throws JobSubmissionException, WorkException;
JobStatus getStatus(String jobHandle);
void registerEventListener(GearmanClientEventListener listener);
void shutdown();
}