package net.johnewart.gearman.example; import net.johnewart.gearman.client.NetworkGearmanWorkerPool; import net.johnewart.gearman.common.events.WorkEvent; import net.johnewart.gearman.common.interfaces.GearmanFunction; import net.johnewart.gearman.net.Connection; import org.apache.commons.lang3.ArrayUtils; import net.johnewart.gearman.common.Job; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class WorkerPoolDemo { private static Logger LOG = LoggerFactory.getLogger(WorkerPoolDemo.class); static class ReverseFunction implements GearmanFunction { @Override public byte[] process(WorkEvent workEvent) { Job job = workEvent.job; byte[] data = job.getData(); String function = job.getFunctionName(); LOG.debug("Got data for function " + function); ArrayUtils.reverse(data); return data; } } public static void main(String... args) { try { byte data[] = "This is a test".getBytes(); NetworkGearmanWorkerPool workerPool = new NetworkGearmanWorkerPool.Builder() .threads(2) .withConnection(new Connection("localhost", 4730)) .build(); workerPool.registerCallback("reverse", new ReverseFunction()); workerPool.doWork(); } catch (Exception e) { LOG.error("Error: ", e); } } }