summaryrefslogtreecommitdiffstats
path: root/gearman
diff options
context:
space:
mode:
authorBjörn Geiger2011-07-27 10:46:19 +0200
committerBjörn Geiger2011-07-27 10:46:19 +0200
commitb239ec9f2a3dbaf0b28faf27abc84f43a46c3a7b (patch)
tree83b58867fdc3cbf8d8a9b9dc012644dfeea01692 /gearman
parentsomePingWorker korrigiert (diff)
downloadpoolctrl-b239ec9f2a3dbaf0b28faf27abc84f43a46c3a7b.tar.gz
poolctrl-b239ec9f2a3dbaf0b28faf27abc84f43a46c3a7b.tar.xz
poolctrl-b239ec9f2a3dbaf0b28faf27abc84f43a46c3a7b.zip
SomePingWorker korrigiert
Diffstat (limited to 'gearman')
-rw-r--r--gearman/controllerWorker/ControllerWorker/Boot.java4
-rw-r--r--gearman/controllerWorker/ControllerWorker/SomePingWorker.java25
2 files changed, 14 insertions, 15 deletions
diff --git a/gearman/controllerWorker/ControllerWorker/Boot.java b/gearman/controllerWorker/ControllerWorker/Boot.java
index cd43fb6..444c55c 100644
--- a/gearman/controllerWorker/ControllerWorker/Boot.java
+++ b/gearman/controllerWorker/ControllerWorker/Boot.java
@@ -91,7 +91,7 @@ public class Boot extends Thread {
JSONObject resultObj = (JSONObject) JSONValue
.parse(result);
String alive = resultObj.get("alive").toString();
- if (alive == "true") {
+ if (alive.equals("true")) {
System.out.println(ipAddress + " alive");
STATUS.put(clientID, 2); // alive
PING_JOBS.remove(clientID);
@@ -119,7 +119,7 @@ public class Boot extends Thread {
GearmanJobResult wolJobRes = wolJob.get();
String result = ByteUtils.fromUTF8Bytes(wolJobRes
.getResults());
- if (result == "Magic packet send.") {
+ if (result.equals("Magic packet send.")) {
System.out
.println(macAddress + "Magic packet send");
STATUS.put(clientID, 5); // magic packet send
diff --git a/gearman/controllerWorker/ControllerWorker/SomePingWorker.java b/gearman/controllerWorker/ControllerWorker/SomePingWorker.java
index 03e001b..f3f6fe6 100644
--- a/gearman/controllerWorker/ControllerWorker/SomePingWorker.java
+++ b/gearman/controllerWorker/ControllerWorker/SomePingWorker.java
@@ -1,7 +1,9 @@
package ControllerWorker;
import java.io.IOException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.ListIterator;
import java.util.concurrent.ExecutionException;
import org.gearman.client.GearmanClient;
@@ -35,14 +37,16 @@ public class SomePingWorker extends AbstractGearmanFunction {
JSONArray jsonArray = (JSONArray) JSONValue.parse(data);
String res = "";
List<GearmanJob> jobs = new ArrayList<GearmanJob>();
+ int count = 1;
for (Object ipObj : jsonArray) {
String ip = ipObj.toString();
System.out.println("Ping " + ip);
GearmanJob job = GearmanJobImpl.createJob("ping", ip.getBytes(),
- "ping" + ip);
+ "ping" + count);
client.submit(job);
jobs.add(job);
+ count++;
}
Boolean exit = false;
@@ -50,7 +54,6 @@ public class SomePingWorker extends AbstractGearmanFunction {
while (!exit) {
ListIterator<GearmanJob> it = jobs.listIterator();
- int count = 0;
while (it.hasNext()) {
GearmanJob j = it.next();
@@ -59,7 +62,8 @@ public class SomePingWorker extends AbstractGearmanFunction {
jStatus = client.getJobStatus(j);
if (!jStatus.isKnown() && j.isDone()) {
GearmanJobResult jobRes = j.get();
- if (count == 0) {
+ String jobID = ByteUtils.fromUTF8Bytes(j.getID());
+ if (jobID.equals("ping1")) {
res += ByteUtils.fromUTF8Bytes(jobRes.getResults());
} else {
res += "; "
@@ -77,15 +81,6 @@ public class SomePingWorker extends AbstractGearmanFunction {
} catch (ExecutionException e) {
e.printStackTrace();
}
-
- count++;
-
- /*
- * try { GearmanJobResult jobRes = j.get(); if (count == 0) {
- * res += ByteUtils.fromUTF8Bytes(jobRes.getResults()); } else {
- * res += "; " + ByteUtils.fromUTF8Bytes(jobRes.getResults()); }
- * } catch (Exception e) { e.printStackTrace(); }
- */
}
ListIterator<GearmanJob> it2 = remove.listIterator();
@@ -95,6 +90,10 @@ public class SomePingWorker extends AbstractGearmanFunction {
}
remove.clear();
+
+ if (jobs.isEmpty()) {
+ exit = true;
+ }
}
byte[] warnings = new byte[0];