package ControllerWorker; import java.io.FileInputStream; import java.util.PropertyResourceBundle; import java.util.ResourceBundle; import org.gearman.common.GearmanJobServerConnection; import org.gearman.common.GearmanNIOJobServerConnection; import org.gearman.worker.GearmanWorker; import org.gearman.worker.GearmanWorkerImpl; import org.apache.log4j.ConsoleAppender; import org.apache.log4j.FileAppender; import org.apache.log4j.Logger; import org.apache.log4j.SimpleLayout; public class ControllerWorkerMain { private static final Logger logger = Logger .getLogger(ControllerWorkerMain.class); private static ResourceBundle application_ini; public static void main(String[] args) { if (args.length <= 1) { /** * logger schreibt auf Konsole */ ConsoleAppender consoleAppender = new ConsoleAppender( new SimpleLayout()); logger.addAppender(consoleAppender); } else { try { /** * schreiben eines Log Files, 2. Übergabeparameter */ FileAppender fileAppender = new FileAppender( new SimpleLayout(), args[1], true); logger.addAppender(fileAppender); } catch (Exception e) { e.printStackTrace(); } } if (args.length >= 1) { try { /** * application.ini laden, 1. Übergabeparameter */ application_ini = new PropertyResourceBundle( new FileInputStream(args[0])); } catch (Exception e) { logger.error(e.toString()); } final GearmanJobServerConnection connection = new GearmanNIOJobServerConnection( "127.0.0.1", 4730); GearmanWorker worker = new GearmanWorkerImpl(); worker.registerFunction(SomePingWorker.class); worker.registerFunction(BootWorker.class); worker.registerFunction(ShutdownWorker.class); worker.registerFunction(StatusWorker.class); worker.addServer(connection); PoolctrlRequest poolctrlRequest = new PoolctrlRequest(); poolctrlRequest.start(); worker.work(); } else { /** * keine Übergabeparameter vorhanden */ logger.error("No parameters given!"); } } public static ResourceBundle getApplication_ini() { return application_ini; } public static Logger getLogger() { return logger; } }