summaryrefslogblamecommitdiffstats
path: root/gearman/controllerWorker/ControllerWorker/ControllerWorkerMain.java
blob: 83a40680d1940d75ca65a09aa37b5ab089bcbddc (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11

                         



                                        




                                                        

                                        
                               
                                     
 
                                   

                                                               
                                                      
 
                                                
                                       


                                                      




                                                                              


                                                                                   








                                                                                   




                                                                               














                                                                                                        


                                                             
                                                             
                 
         
 

                                                           
         



                                          
 
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;
	}
}