summaryrefslogtreecommitdiffstats
path: root/gearman/controllerWorker/ControllerWorker/BootWorker.java
diff options
context:
space:
mode:
Diffstat (limited to 'gearman/controllerWorker/ControllerWorker/BootWorker.java')
-rwxr-xr-xgearman/controllerWorker/ControllerWorker/BootWorker.java40
1 files changed, 29 insertions, 11 deletions
diff --git a/gearman/controllerWorker/ControllerWorker/BootWorker.java b/gearman/controllerWorker/ControllerWorker/BootWorker.java
index 0963aef..e9021e5 100755
--- a/gearman/controllerWorker/ControllerWorker/BootWorker.java
+++ b/gearman/controllerWorker/ControllerWorker/BootWorker.java
@@ -1,10 +1,17 @@
package ControllerWorker;
+import java.util.LinkedHashMap;
import java.util.StringTokenizer;
import java.util.Vector;
+import org.gearman.client.GearmanClient;
+import org.gearman.client.GearmanClientImpl;
+import org.gearman.client.GearmanJob;
+import org.gearman.client.GearmanJobImpl;
import org.gearman.client.GearmanJobResult;
import org.gearman.client.GearmanJobResultImpl;
+import org.gearman.common.GearmanJobServerConnection;
+import org.gearman.common.GearmanNIOJobServerConnection;
import org.gearman.util.ByteUtils;
import org.gearman.worker.AbstractGearmanFunction;
@@ -29,23 +36,22 @@ public class BootWorker extends AbstractGearmanFunction {
JSONObject jsonObject = (JSONObject) JSONValue.parse(data);
String event = jsonObject.get("eventName").toString();
String eventOS = jsonObject.get("eventOS").toString();
- JSONArray jsonArray = (JSONArray) jsonObject.get("clients");
+ JSONArray jsonClients = (JSONArray) jsonObject.get("clients");
- for (Object clientObj : jsonArray) {
+ for (Object clientObj : jsonClients) {
JSONObject clientJsonObj = (JSONObject) clientObj;
- Client client = new Client(clientJsonObj,
- "The booting process of the client has been started.");
+ Client client = new Client(clientJsonObj, "boot", event);
clients.add(client);
}
- String gearmanServerHost = ControllerWorkerMain.getApplication_ini().getString(
- "gearman.server.host");
+ String gearmanServerHost = ControllerWorkerMain.getApplication_ini()
+ .getString("gearman.server.host");
int gearmanServerPort = Integer.parseInt(ControllerWorkerMain
.getApplication_ini().getString("gearman.server.port"));
- long waitTime = Long.parseLong(ControllerWorkerMain.getApplication_ini()
- .getString("gearman.worker.waitTime"));
- int updateRate = Integer.parseInt(ControllerWorkerMain.getApplication_ini()
- .getString("gearman.worker.updateRate"));
+ long waitTime = Long.parseLong(ControllerWorkerMain
+ .getApplication_ini().getString("gearman.worker.waitTime"));
+ int updateRate = Integer.parseInt(ControllerWorkerMain
+ .getApplication_ini().getString("gearman.worker.updateRate"));
String blacklist = ControllerWorkerMain.getApplication_ini().getString(
"gearman.worker.ps.blacklist");
StringTokenizer blacklistTokenizer = new StringTokenizer(blacklist, ",");
@@ -65,7 +71,19 @@ public class BootWorker extends AbstractGearmanFunction {
Boot boot = new Boot(event, clients, eventOS, updateRate, waitTime,
psWhitelist, psBlacklist, gearmanServerHost, gearmanServerPort);
- StatusWorker.BOOTTHREADS.put(event, boot);
+ GearmanJobServerConnection gearmanConnection = new GearmanNIOJobServerConnection(
+ gearmanServerHost, gearmanServerPort);
+ GearmanClient gearmanClient = new GearmanClientImpl();
+ gearmanClient.addJobServer(gearmanConnection);
+ LinkedHashMap<String, Object> jsonData = new LinkedHashMap<String, Object>();
+ jsonData.put("eventName", event);
+ jsonData.put("type", "createBootState");
+ jsonData.put("eventOS", eventOS);
+ jsonData.put("clients", jsonClients.toArray());
+ String dataString = JSONValue.toJSONString(jsonData);
+ GearmanJob job = GearmanJobImpl.createJob("status", dataString
+ .getBytes(), "status" + event);
+ gearmanClient.submit(job);
boot.start();
logger.info("Booting of " + event + " started");
String res = "Booting started";