summaryrefslogtreecommitdiffstats
path: root/gearman/controllerWorker/ControllerWorker/ControllerWorkerMain.java
blob: bd29ad04f33d4b996c9ad975e2b3eed1254c09b5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
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 iniFile;

	public static void main(String[] args) {
		if (args.length <= 1) {
			ConsoleAppender consoleAppender = new ConsoleAppender(
					new SimpleLayout());
			logger.addAppender(consoleAppender);
		} else {
			try {
				FileAppender fileAppender = new FileAppender(
						new SimpleLayout(), args[1], true);
				logger.addAppender(fileAppender);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		if (args.length >= 1) {
			try {
				iniFile = 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 {
			logger.error("No parameters given!");
		}
	}

	public static ResourceBundle getIniFile() {
		return iniFile;
	}

	public static Logger getLogger() {
		return logger;
	}
}