summaryrefslogtreecommitdiffstats
path: root/gearman
diff options
context:
space:
mode:
authorBjörn Geiger2011-07-14 19:39:11 +0200
committerBjörn Geiger2011-07-14 19:39:11 +0200
commitc129115e849c4562f654b9e96991ee7bd76843d7 (patch)
tree7716dbf8dfb31f66fd0a3c5bcc38a27674d6d0ef /gearman
parentpinkWorker hinzugefügt (diff)
downloadpoolctrl-c129115e849c4562f654b9e96991ee7bd76843d7.tar.gz
poolctrl-c129115e849c4562f654b9e96991ee7bd76843d7.tar.xz
poolctrl-c129115e849c4562f654b9e96991ee7bd76843d7.zip
somePingWorker in Java
Diffstat (limited to 'gearman')
-rw-r--r--gearman/java/bin/ping/somePingWorker$SomePing.classbin0 -> 3129 bytes
-rw-r--r--gearman/java/bin/ping/somePingWorker.classbin0 -> 1006 bytes
-rw-r--r--gearman/java/library/gearman-java-0.04-javadocs.jarbin0 -> 306527 bytes
-rwxr-xr-xgearman/java/library/gearman-java-0.04.jarbin0 -> 92460 bytes
-rwxr-xr-xgearman/java/src/ping/afslkdfj.java79
-rwxr-xr-xgearman/java/src/ping/somePingWorker.java68
6 files changed, 147 insertions, 0 deletions
diff --git a/gearman/java/bin/ping/somePingWorker$SomePing.class b/gearman/java/bin/ping/somePingWorker$SomePing.class
new file mode 100644
index 0000000..15ab09e
--- /dev/null
+++ b/gearman/java/bin/ping/somePingWorker$SomePing.class
Binary files differ
diff --git a/gearman/java/bin/ping/somePingWorker.class b/gearman/java/bin/ping/somePingWorker.class
new file mode 100644
index 0000000..640c486
--- /dev/null
+++ b/gearman/java/bin/ping/somePingWorker.class
Binary files differ
diff --git a/gearman/java/library/gearman-java-0.04-javadocs.jar b/gearman/java/library/gearman-java-0.04-javadocs.jar
new file mode 100644
index 0000000..f98b8b9
--- /dev/null
+++ b/gearman/java/library/gearman-java-0.04-javadocs.jar
Binary files differ
diff --git a/gearman/java/library/gearman-java-0.04.jar b/gearman/java/library/gearman-java-0.04.jar
new file mode 100755
index 0000000..5db9a94
--- /dev/null
+++ b/gearman/java/library/gearman-java-0.04.jar
Binary files differ
diff --git a/gearman/java/src/ping/afslkdfj.java b/gearman/java/src/ping/afslkdfj.java
new file mode 100755
index 0000000..08fab85
--- /dev/null
+++ b/gearman/java/src/ping/afslkdfj.java
@@ -0,0 +1,79 @@
+package ping;
+
+import java.io.IOException;
+import java.net.InetSocketAddress;
+
+import static org.gearman.GearmanJobResult.workSuccessful;
+
+import org.gearman.Gearman;
+import org.gearman.GearmanClient;
+import org.gearman.GearmanFunction;
+import org.gearman.GearmanJob;
+import org.gearman.GearmanJobResult;
+import org.gearman.GearmanWorker;
+import org.gearman.GearmanClient.GearmanSubmitHandler;
+import org.gearman.GearmanClient.SubmitCallbackResult;
+import org.gearman.core.GearmanConstants;
+
+public class somePingWorker implements GearmanFunction {
+ public static void main(String[] args) throws IOException {
+ final Gearman gearman = new Gearman();
+ final GearmanWorker worker = gearman.createGearmanWorker();
+ worker.addServer(new InetSocketAddress("132.230.4.3",
+ GearmanConstants.DEFAULT_PORT));
+ worker.addFunction("somePing", new somePingWorker());
+ }
+
+ @Override
+ public GearmanJobResult work(GearmanJob job) {
+ final GearmanSubmitHandler callback = new GearmanSubmitHandler() {
+ @Override
+ public void onComplete(GearmanJob newJob,
+ SubmitCallbackResult result) {
+ if (result.isSuccessful())
+ return;
+ System.err.println("job submission failed: " + result.name());
+ }
+ };
+ //String ips = new String(job.getJobData());
+ final GearmanJob pingJob = new GearmanJob("ping", "Hello World"
+ .getBytes()) {
+ @Override
+ public void callbackStatus(long numerator, long denominator) {
+ assert false;
+ }
+
+ @Override
+ public void callbackData(byte[] data) {
+ assert false;
+ }
+
+ @Override
+ public void callbackWarning(byte[] warning) {
+ assert false;
+ }
+
+ @Override
+ protected void onComplete(GearmanJobResult result) {
+ if (result.isSuccessful()) {
+ System.out.println(new String(result.getData(),
+ GearmanConstants.UTF_8));
+ } else {
+ System.err.println("Job execution failed: "
+ + result.getJobCallbackResult().name());
+ }
+ }
+ };
+ try {
+ Gearman gearman = new Gearman();
+ GearmanClient client = gearman.createGearmanClient();
+ client.addServer(new InetSocketAddress("132.230.4.3",
+ GearmanConstants.DEFAULT_PORT));
+ System.out.println("Ping: " + new String(job.getJobData()));
+ client.submitJob(pingJob, callback);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return workSuccessful(job.getJobData());
+ }
+}
diff --git a/gearman/java/src/ping/somePingWorker.java b/gearman/java/src/ping/somePingWorker.java
new file mode 100755
index 0000000..9805c09
--- /dev/null
+++ b/gearman/java/src/ping/somePingWorker.java
@@ -0,0 +1,68 @@
+package ping;
+
+import java.util.StringTokenizer;
+
+import org.gearman.client.*;
+import org.gearman.common.GearmanJobServerConnection;
+import org.gearman.common.GearmanNIOJobServerConnection;
+import org.gearman.util.ByteUtils;
+import org.gearman.worker.AbstractGearmanFunction;
+import org.gearman.worker.GearmanWorker;
+import org.gearman.worker.GearmanWorkerImpl;
+
+public class somePingWorker {
+
+ public static void main(String[] args) {
+ final GearmanJobServerConnection connection = new GearmanNIOJobServerConnection(
+ "132.230.4.3", 4730);
+ GearmanWorker worker = new GearmanWorkerImpl();
+ worker.addServer(connection);
+ worker.registerFunction(SomePing.class);
+
+ worker.work();
+ }
+
+ public static class SomePing extends AbstractGearmanFunction {
+
+ @Override
+ public String getName() {
+ return "somePing";
+ }
+
+ @Override
+ public GearmanJobResult executeFunction() {
+ final GearmanJobServerConnection connection = new GearmanNIOJobServerConnection(
+ "132.230.4.3", 4730);
+ GearmanClient client = new GearmanClientImpl();
+ client.addJobServer(connection);
+ String data = ByteUtils.fromUTF8Bytes((byte[]) this.data);
+ StringTokenizer st = new StringTokenizer(data, ";");
+ String res = "";
+ int count = 0;
+ while (st.hasMoreTokens()) {
+ String ip = st.nextToken();
+ System.out.println("Ping" + ip);
+ GearmanJob job = GearmanJobImpl.createJob("ping", ip.getBytes(), "pingJob");
+ client.submit(job);
+ try {
+ GearmanJobResult jobRes = job.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];
+ int numerator = 0;
+ int denominator = 0;
+ GearmanJobResult gjr = new GearmanJobResultImpl(this.jobHandle,
+ true, res.getBytes(), warnings, exceptions, numerator, denominator);
+ return gjr;
+ }
+ }
+}