package net.johnewart.gearman.integ; import net.johnewart.gearman.common.Job; import net.johnewart.gearman.common.events.WorkEvent; import net.johnewart.gearman.common.interfaces.GearmanFunction; import net.johnewart.gearman.common.interfaces.GearmanWorker; import org.apache.commons.lang3.ArrayUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; public class ReverseFunc implements GearmanFunction { private final Logger LOG = LoggerFactory.getLogger(ReverseFunc.class); @Override public byte[] process(WorkEvent workEvent) { final Job job = workEvent.job; final GearmanWorker worker = workEvent.worker; LOG.debug(String.format("Processing job '%s' with data '%s'", job.getFunctionName(), new String(job.getData()))); byte[] data = job.getData().clone(); ArrayUtils.reverse(data); for(int i = 0; i < 10; i++) { try { worker.sendStatus(job, i, 10); } catch (IOException e) { LOG.error("Unable to send status: ", e); } } return data; } }