package net.johnewart.gearman.integ; import net.johnewart.gearman.client.NetworkGearmanWorker; import net.johnewart.gearman.common.interfaces.GearmanFunction; import net.johnewart.gearman.common.interfaces.GearmanWorker; import net.johnewart.gearman.net.Connection; import java.util.Map; import java.util.Set; public class WorkerRunner implements Runnable { private GearmanWorker worker; private Map<String, GearmanFunction> functions; private Set<Connection> connections; public WorkerRunner(Set<Connection> connections, Map<String, GearmanFunction> functions) { this.functions = functions; this.connections = connections; } @Override public void run() { NetworkGearmanWorker.Builder builder = new NetworkGearmanWorker.Builder(); for(Connection c : connections) { builder.withConnection(c); } worker = builder.build(); for(String function : functions.keySet()) { worker.registerCallback(function, functions.get(function)); } worker.doWork(); } public void stop() { worker.stopWork(); } }