package net.johnewart.gearman.example;
import net.johnewart.gearman.client.NetworkGearmanWorker;
import net.johnewart.gearman.common.events.WorkEvent;
import org.apache.commons.lang3.ArrayUtils;
import net.johnewart.gearman.common.interfaces.GearmanFunction;
import net.johnewart.gearman.common.Job;
import net.johnewart.gearman.net.Connection;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class WorkerDemo {
private static Logger LOG = LoggerFactory.getLogger(WorkerDemo.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();
NetworkGearmanWorker worker = new NetworkGearmanWorker.Builder()
.withConnection(new Connection("localhost", 4730))
.build();
worker.registerCallback("reverse", new ReverseFunction());
worker.doWork();
} catch (Exception e) {
LOG.error("oops!");
}
}
}