summaryrefslogblamecommitdiffstats
path: root/gearman/controllerWorker/ControllerWorker/ControllerWorkerMain.java
blob: d668cd20a3dd0b667101bdaa831afe929f3b4161 (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.BasicConfigurator;
import org.apache.log4j.Logger;

public class ControllerWorkerMain {
	private static final Logger logger = Logger
			.getLogger(ControllerWorkerMain.class);
	private static ResourceBundle iniFile;

	public static void main(String[] args) {
		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);
		BasicConfigurator.configure();
		iniFile = getIniFile("../../application/configs/application.ini");
		String runURL = "http://" + iniFile.getString("poolctrl.host")
				+ iniFile.getString("poolctrl.runevent");
		String reportURL = "http://" + iniFile.getString("poolctrl.host")
				+ iniFile.getString("poolctrl.runevent");
		long updatePeriod = Long.parseLong(iniFile
				.getString("event.updatePeriod")) * 60L * 1000000000L; // nanoseconds
		PoolctrlRequest poolctrlRequest;
		poolctrlRequest = new PoolctrlRequest(runURL, reportURL, updatePeriod);
		poolctrlRequest.run();
		worker.work();
	}

	private static PropertyResourceBundle getIniFile(String file) {
		try {
			return new PropertyResourceBundle(new FileInputStream(file));
		} catch (Exception e) {
			logger.error(e.toString());
			return null;
		}
	}
}