package net.johnewart.gearman.server; import net.johnewart.gearman.common.Job; import net.johnewart.gearman.common.interfaces.JobHandleFactory; import net.johnewart.gearman.constants.JobPriority; import net.johnewart.gearman.engine.util.LocalJobHandleFactory; import org.joda.time.DateTime; import org.joda.time.Seconds; import java.util.UUID; public class JobFactory { private static final JobHandleFactory jobHandleFactory = new LocalJobHandleFactory("testhost"); public static Job generateForegroundJob(String functionName) { String uuid = UUID.randomUUID().toString(); byte[] data = {'f','o','o'}; JobPriority priority = JobPriority.NORMAL; boolean isBackground = false; return new Job(functionName, uuid, data, jobHandleFactory.getNextJobHandle(), priority, isBackground, -1); } public static Job generateBackgroundJob(String functionName) { String uuid = UUID.randomUUID().toString(); byte[] data = {'b','a','r'}; JobPriority priority = JobPriority.NORMAL; boolean isBackground = true; return new Job(functionName, uuid, data, jobHandleFactory.getNextJobHandle(), priority, isBackground, -1); } public static Job generateFutureJob(String functionName, Seconds seconds) { String uuid = UUID.randomUUID().toString(); byte[] data = {'f','l','u','x',' ','c','a','p'}; JobPriority priority = JobPriority.NORMAL; boolean isBackground = true; long whenToRun = new DateTime().plus(seconds).toDate().getTime() / 1000; return new Job(functionName, uuid, data, jobHandleFactory.getNextJobHandle(), priority, isBackground, whenToRun); } public static Job generateHighPriorityBackgroundJob(String functionName) { String uuid = UUID.randomUUID().toString(); byte[] data = {'s','u','p','e','r'}; JobPriority priority = JobPriority.HIGH; boolean isBackground = true; return new Job(functionName, uuid, data, jobHandleFactory.getNextJobHandle(), priority, isBackground, -1); } public static Job generateLowPriorityBackgroundJob(String functionName) { String uuid = UUID.randomUUID().toString(); byte[] data = {'s','u','p','e','r'}; JobPriority priority = JobPriority.LOW; boolean isBackground = true; return new Job(functionName, uuid, data, jobHandleFactory.getNextJobHandle(), priority, isBackground, -1); } }