From 24025bbcd2b3d27b3faaee838be7d65e69189451 Mon Sep 17 00:00:00 2001 From: Björn Geiger Date: Wed, 21 Sep 2011 14:28:54 +0200 Subject: StatusWorker überarbeitet, noch nicht getestet --- .../ControllerWorker/BootWorker.java | 40 ++++++++++++++++------ 1 file changed, 29 insertions(+), 11 deletions(-) (limited to 'gearman/controllerWorker/ControllerWorker/BootWorker.java') 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 jsonData = new LinkedHashMap(); + 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"; -- cgit v1.2.3-55-g7522