summaryrefslogtreecommitdiffstats
path: root/gearman/controllerWorker/ControllerWorker/StatusWorker.java
diff options
context:
space:
mode:
authorBjörn Geiger2011-07-27 12:04:43 +0200
committerBjörn Geiger2011-07-27 12:04:43 +0200
commitec4aec0bb539a126ca2f6c79323cfd53c4f122cf (patch)
tree7c3fcb6ee90f7a2958a3650f92f22714748be764 /gearman/controllerWorker/ControllerWorker/StatusWorker.java
parentStopping the Thread after all Clients have been finished (diff)
downloadpoolctrl-ec4aec0bb539a126ca2f6c79323cfd53c4f122cf.tar.gz
poolctrl-ec4aec0bb539a126ca2f6c79323cfd53c4f122cf.tar.xz
poolctrl-ec4aec0bb539a126ca2f6c79323cfd53c4f122cf.zip
einige Fehler korrigiert
Diffstat (limited to 'gearman/controllerWorker/ControllerWorker/StatusWorker.java')
-rw-r--r--gearman/controllerWorker/ControllerWorker/StatusWorker.java38
1 files changed, 34 insertions, 4 deletions
diff --git a/gearman/controllerWorker/ControllerWorker/StatusWorker.java b/gearman/controllerWorker/ControllerWorker/StatusWorker.java
index deb6531..ede923f 100644
--- a/gearman/controllerWorker/ControllerWorker/StatusWorker.java
+++ b/gearman/controllerWorker/ControllerWorker/StatusWorker.java
@@ -1,8 +1,14 @@
package ControllerWorker;
+import java.util.HashMap;
+import java.util.Vector;
+
import org.gearman.client.GearmanJobResult;
import org.gearman.client.GearmanJobResultImpl;
+import org.gearman.util.ByteUtils;
import org.gearman.worker.AbstractGearmanFunction;
+import org.json.simple.JSONArray;
+import org.json.simple.JSONValue;
public class StatusWorker extends AbstractGearmanFunction {
@Override
@@ -12,18 +18,42 @@ public class StatusWorker extends AbstractGearmanFunction {
@Override
public GearmanJobResult executeFunction() {
- // String data = ByteUtils.fromUTF8Bytes((byte[]) this.data);
+ String data = ByteUtils.fromUTF8Bytes((byte[]) this.data);
+ Vector<String> events = new Vector<String>();
+ JSONArray jsonArray = (JSONArray) JSONValue.parse(data);
+
+ for (Object eventObj : jsonArray) {
+ String event = eventObj.toString();
+ events.add(event);
+ }
+
+ String[] res = new String[jsonArray.size()];
+ int count = 0;
+
+ for (String event : events) {
+ HashMap<String, Boot> bootThreads = BootWorker.BOOTTHREADS;
+ Boot boot = bootThreads.get(event);
+
+ if (boot.isFinished()) {
+ res[count] = "Booting of " + event + " finished!";
+ } else if (boot.isFinishedWithErrors()) {
+ res[count] = "Booting of " + event + " finished with errors!";
+ } else {
+ res[count] = "Booting of " + event + " not yet finished!";
+ }
- // HashMap<Integer, Integer> status = Boot.STATUS;
+ count++;
+ }
- String res = "Status Update";
+ String jsonResult = JSONValue.toJSONString(res);
byte[] warnings = new byte[0];
byte[] exceptions = new byte[0];
int numerator = 0;
int denominator = 0;
GearmanJobResult gjr = new GearmanJobResultImpl(this.jobHandle, true,
- res.getBytes(), warnings, exceptions, numerator, denominator);
+ jsonResult.getBytes(), warnings, exceptions, numerator,
+ denominator);
return gjr;
}
} \ No newline at end of file