summaryrefslogtreecommitdiffstats
path: root/gearman/controllerWorker/ControllerWorker/ShutdownWorker.java
diff options
context:
space:
mode:
authorBjörn Geiger2011-09-21 14:28:54 +0200
committerBjörn Geiger2011-09-21 14:28:54 +0200
commit24025bbcd2b3d27b3faaee838be7d65e69189451 (patch)
tree2fada98cd40443f8ab353deb97492b14fe73988b /gearman/controllerWorker/ControllerWorker/ShutdownWorker.java
parentrm getpoolselectboxval (diff)
downloadpoolctrl-24025bbcd2b3d27b3faaee838be7d65e69189451.tar.gz
poolctrl-24025bbcd2b3d27b3faaee838be7d65e69189451.tar.xz
poolctrl-24025bbcd2b3d27b3faaee838be7d65e69189451.zip
StatusWorker überarbeitet, noch nicht getestet
Diffstat (limited to 'gearman/controllerWorker/ControllerWorker/ShutdownWorker.java')
-rwxr-xr-xgearman/controllerWorker/ControllerWorker/ShutdownWorker.java39
1 files changed, 28 insertions, 11 deletions
diff --git a/gearman/controllerWorker/ControllerWorker/ShutdownWorker.java b/gearman/controllerWorker/ControllerWorker/ShutdownWorker.java
index 4057d9f..654c07f 100755
--- a/gearman/controllerWorker/ControllerWorker/ShutdownWorker.java
+++ b/gearman/controllerWorker/ControllerWorker/ShutdownWorker.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;
@@ -28,23 +35,22 @@ public class ShutdownWorker extends AbstractGearmanFunction {
Vector<Client> clients = new Vector<Client>();
JSONObject jsonObject = (JSONObject) JSONValue.parse(data);
String event = jsonObject.get("eventName").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 shutdown process of the client has been started.");
+ Client client = new Client(clientJsonObj, "shutdown", 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, ",");
@@ -64,7 +70,18 @@ public class ShutdownWorker extends AbstractGearmanFunction {
Shutdown shutdown = new Shutdown(event, clients, updateRate, waitTime,
psWhitelist, psBlacklist, gearmanServerHost, gearmanServerPort);
- StatusWorker.SHUTDOWNTHREADS.put(event, shutdown);
+ 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", "createShutdownState");
+ jsonData.put("clients", jsonClients.toArray());
+ String dataString = JSONValue.toJSONString(jsonData);
+ GearmanJob job = GearmanJobImpl.createJob("status", dataString
+ .getBytes(), "status" + event);
+ gearmanClient.submit(job);
shutdown.start();
logger.info("Shutdown of " + event + " started");
String res = "Shutdown started";