summaryrefslogtreecommitdiffstats
path: root/gearman/java/ControllerWorker/SomePingWorker.java
diff options
context:
space:
mode:
authorSebastian Wagner2011-07-25 16:47:48 +0200
committerSebastian Wagner2011-07-25 16:47:48 +0200
commitec685937f00e04f4a13e3cb5ea62bc2ecae08563 (patch)
tree41896ca925d3452cbfb2609bb874972ca0ef505b /gearman/java/ControllerWorker/SomePingWorker.java
parentminor (diff)
downloadpoolctrl-ec685937f00e04f4a13e3cb5ea62bc2ecae08563.tar.gz
poolctrl-ec685937f00e04f4a13e3cb5ea62bc2ecae08563.tar.xz
poolctrl-ec685937f00e04f4a13e3cb5ea62bc2ecae08563.zip
calendar added
Diffstat (limited to 'gearman/java/ControllerWorker/SomePingWorker.java')
-rw-r--r--gearman/java/ControllerWorker/SomePingWorker.java51
1 files changed, 43 insertions, 8 deletions
diff --git a/gearman/java/ControllerWorker/SomePingWorker.java b/gearman/java/ControllerWorker/SomePingWorker.java
index 45e8dcf..d37745c 100644
--- a/gearman/java/ControllerWorker/SomePingWorker.java
+++ b/gearman/java/ControllerWorker/SomePingWorker.java
@@ -1,5 +1,8 @@
package ControllerWorker;
+import java.util.*;
+import java.util.concurrent.ExecutionException;
+
import org.gearman.client.GearmanClient;
import org.gearman.client.GearmanClientImpl;
import org.gearman.client.GearmanJob;
@@ -30,6 +33,8 @@ public class SomePingWorker extends AbstractGearmanFunction {
JSONArray jsonArray = (JSONArray) JSONValue.parse(data);
int count = 0;
String res = "";
+
+ List<GearmanJob> jobs = new ArrayList<GearmanJob>();
for (Object ipObj : jsonArray) {
String ip = ipObj.toString();
@@ -37,17 +42,47 @@ public class SomePingWorker extends AbstractGearmanFunction {
GearmanJob job = GearmanJobImpl.createJob("ping", ip.getBytes(),
"pingJob");
client.submit(job);
- try {
- GearmanJobResult jobRes = job.get();
- if (count == 0) {
- res += ByteUtils.fromUTF8Bytes(jobRes.getResults());
+ jobs.add(job);
+ count++;
+ }
+
+ Boolean exit=false;
+ while (!exit) {
+ ListIterator<GearmanJob> it = jobs.listIterator();
+ while (it.hasNext()) {
+
+ GearmanJob j = it.next();
+ if (j.isDone()) {
+ System.out.println("job done..");
+ GearmanJobResult jobRes;
+ try {
+ jobRes = j.get();
+ if (count == 0) {
+ res += ByteUtils.fromUTF8Bytes(jobRes.getResults());
+ } else {
+ res += "; " + ByteUtils.fromUTF8Bytes(jobRes.getResults());
+ }
+ } catch (InterruptedException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (ExecutionException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
} else {
- res += "; " + ByteUtils.fromUTF8Bytes(jobRes.getResults());
+ System.out.println("job not yet done ....");
}
- } catch (Exception e) {
- e.printStackTrace();
+/* try {
+ GearmanJobResult jobRes = j.get();
+ if (count == 0) {
+ res += ByteUtils.fromUTF8Bytes(jobRes.getResults());
+ } else {
+ res += "; " + ByteUtils.fromUTF8Bytes(jobRes.getResults());
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }*/
}
- count++;
}
byte[] warnings = new byte[0];
byte[] exceptions = new byte[0];