summaryrefslogtreecommitdiffstats
path: root/gearman/controllerWorker
diff options
context:
space:
mode:
authorBjörn Geiger2011-09-12 09:12:07 +0200
committerBjörn Geiger2011-09-12 09:12:07 +0200
commit858629b6126fc75b499c9321e48b9901d18a9e78 (patch)
tree81a128bce8866795b9dda0f9a7f252cc48abe5b4 /gearman/controllerWorker
parentImmediate Events werden nun direkt ausgeführt (diff)
downloadpoolctrl-858629b6126fc75b499c9321e48b9901d18a9e78.tar.gz
poolctrl-858629b6126fc75b499c9321e48b9901d18a9e78.tar.xz
poolctrl-858629b6126fc75b499c9321e48b9901d18a9e78.zip
Run Event nun im Java Worker
Diffstat (limited to 'gearman/controllerWorker')
-rw-r--r--gearman/controllerWorker/ControllerWorker/Boot.java2
-rwxr-xr-xgearman/controllerWorker/ControllerWorker/ControllerWorkerMain.java4
-rw-r--r--gearman/controllerWorker/ControllerWorker/Shutdown.java138
-rw-r--r--gearman/controllerWorker/ControllerWorker/SomePingWorker.java11
4 files changed, 84 insertions, 71 deletions
diff --git a/gearman/controllerWorker/ControllerWorker/Boot.java b/gearman/controllerWorker/ControllerWorker/Boot.java
index 8d1d6fc..1811734 100644
--- a/gearman/controllerWorker/ControllerWorker/Boot.java
+++ b/gearman/controllerWorker/ControllerWorker/Boot.java
@@ -103,7 +103,7 @@ public class Boot extends Thread {
timeLeft = 10;
Thread.sleep(timeLeft);
} catch (Exception e) {
- e.printStackTrace();
+ logger.error(e.getStackTrace());
}
}
finished = true;
diff --git a/gearman/controllerWorker/ControllerWorker/ControllerWorkerMain.java b/gearman/controllerWorker/ControllerWorker/ControllerWorkerMain.java
index 3a6bc5f..1a090b2 100755
--- a/gearman/controllerWorker/ControllerWorker/ControllerWorkerMain.java
+++ b/gearman/controllerWorker/ControllerWorker/ControllerWorkerMain.java
@@ -19,5 +19,9 @@ public class ControllerWorkerMain {
worker.addServer(connection);
BasicConfigurator.configure();
worker.work();
+ RunEvents runEvents;
+ runEvents = new RunEvents(
+ "http://poolctrl.local/event/run/apikey/apikey1", 300000L);
+ runEvents.run();
}
} \ No newline at end of file
diff --git a/gearman/controllerWorker/ControllerWorker/Shutdown.java b/gearman/controllerWorker/ControllerWorker/Shutdown.java
index e23f9f9..ce17940 100644
--- a/gearman/controllerWorker/ControllerWorker/Shutdown.java
+++ b/gearman/controllerWorker/ControllerWorker/Shutdown.java
@@ -47,16 +47,17 @@ public class Shutdown extends Thread {
private Boolean error;
public Shutdown(String eventName, Vector<Client> clients, int updateRate,
- long waitTime, Vector<String> psWhitelist, Vector<String> psBlacklist,
- String gearmanServerAddress, int gearmanServerPort) {
+ long waitTime, Vector<String> psWhitelist,
+ Vector<String> psBlacklist, String gearmanServerAddress,
+ int gearmanServerPort) {
this.eventName = eventName;
this.clients = clients;
this.updateRate = updateRate; // updates per second
this.waitTime = waitTime * 1000;
this.psWhitelist = psWhitelist;
this.psBlacklist = psBlacklist;
- gearmanConnection = new GearmanNIOJobServerConnection(gearmanServerAddress,
- gearmanServerPort);
+ gearmanConnection = new GearmanNIOJobServerConnection(
+ gearmanServerAddress, gearmanServerPort);
gearmanClient = new GearmanClientImpl();
gearmanClient.addJobServer(gearmanConnection);
pingJobs = new HashMap<Integer, GearmanJob>();
@@ -89,7 +90,7 @@ public class Shutdown extends Thread {
timeLeft = 10;
Thread.sleep(timeLeft);
} catch (Exception e) {
- e.printStackTrace();
+ logger.error(e.getStackTrace());
}
}
finished = true;
@@ -99,11 +100,9 @@ public class Shutdown extends Thread {
logger.info("Shutdown of " + eventName + " finished");
}
}
-
+
/*
- * --------------
- * shutdown logik
- * --------------
+ * -------------- shutdown logik --------------
*/
private Boolean update() throws Exception {
@@ -112,12 +111,12 @@ public class Shutdown extends Thread {
case CLIENT_UNKNOWN:
ping(client);
-
+
break;
case CHECK_PING_PROGRESS:
checkPingProgress(client);
-
+
break;
case CLIENT_IS_ALIVE:
@@ -212,15 +211,12 @@ public class Shutdown extends Thread {
}
/*
- * -------------------------
- * function declarations
- * -------------------------
+ * ------------------------- function declarations -------------------------
*/
-
-
+
private void ping(Client client) {
- GearmanJob job = GearmanJobImpl.createJob("ping",
- client.getIp().getBytes(), "ping" + client.getId());
+ GearmanJob job = GearmanJobImpl.createJob("ping", client.getIp()
+ .getBytes(), "ping" + client.getId());
gearmanClient.submit(job);
client.setState(ClientState.CHECK_PING_PROGRESS);
pingJobs.put(client.getId(), job);
@@ -235,7 +231,8 @@ public class Shutdown extends Thread {
if (!jobStatus.isKnown() && pingJob.isDone()) {
GearmanJobResult pingJobRes = pingJob.get();
- String result = ByteUtils.fromUTF8Bytes(pingJobRes.getResults());
+ String result = ByteUtils
+ .fromUTF8Bytes(pingJobRes.getResults());
if (!result.isEmpty()) {
JSONObject resultObj = (JSONObject) JSONValue.parse(result);
@@ -255,8 +252,10 @@ public class Shutdown extends Thread {
pingJobs.remove(client.getId());
}
} else {
- logger.error(client.getIp() + " Cannot send the ping message.");
- client.setError("Sending the ping message has been failed.");
+ logger.error(client.getIp()
+ + " Cannot send the ping message.");
+ client
+ .setError("Sending the ping message has been failed.");
// sending the ping message has been failed
client.setState(ClientState.SHUTDOWN_ERROR);
pingJobs.remove(client.getId());
@@ -265,19 +264,19 @@ public class Shutdown extends Thread {
}
}
}
-
+
private void who(Client client) {
- GearmanJob job = GearmanJobImpl.createJob("who", client.getIp().getBytes(),
- "who" + client.getId());
+ GearmanJob job = GearmanJobImpl.createJob("who", client.getIp()
+ .getBytes(), "who" + client.getId());
gearmanClient.submit(job);
client.setState(ClientState.CHECK_WHO_PROGRESS);
whoJobs.put(client.getId(), job);
logger.info("who " + client.getIp());
}
-
+
private void checkWhoProgress(Client client) throws Exception, IOException {
GearmanJob whoJob = whoJobs.get(client.getId());
-
+
if (whoJob != null) {
GearmanJobStatus jobStatus = gearmanClient.getJobStatus(whoJob);
@@ -288,22 +287,27 @@ public class Shutdown extends Thread {
if (!result.isEmpty()) {
JSONObject resultObj = (JSONObject) JSONValue.parse(result);
if (!resultObj.containsKey("err")) {
- String rawoutput = resultObj.get("rawoutput").toString();
- StringTokenizer str = new StringTokenizer(rawoutput, " ");
+ String rawoutput = resultObj.get("rawoutput")
+ .toString();
+ StringTokenizer str = new StringTokenizer(rawoutput,
+ " ");
String user = "";
if (str.hasMoreTokens()) {
user = str.nextToken();
}
if (user.isEmpty()) {
- logger.info(client.getIp() + " no user is logged in -CHECK PS-");
+ logger.info(client.getIp()
+ + " no user is logged in -CHECK PS-");
// no user is logged in
- //-----
+ // -----
// didn´t work in test-pool, check ps
client.setState(ClientState.USER_IS_LOGGED_IN);
whoJobs.remove(client.getId());
} else {
- logger.info(client.getIp() + " a user is logged in");
+ logger
+ .info(client.getIp()
+ + " a user is logged in");
// a user is logged in
client.setState(ClientState.USER_IS_LOGGED_IN);
whoJobs.remove(client.getId());
@@ -323,20 +327,21 @@ public class Shutdown extends Thread {
}
}
}
-
+
private void doShutdown(Client client) {
GearmanJob job = GearmanJobImpl.createJob("doShutdown", client.getIp()
-
- .getBytes(), "doShutdown" + client.getId());
+
+ .getBytes(), "doShutdown" + client.getId());
gearmanClient.submit(job);
client.setState(ClientState.CHECK_SHUTDOWN_PROGRESS);
doShutdownJobs.put(client.getId(), job);
logger.info("doShutdown " + client.getIp());
}
- private void checkShutdownProgress(Client client) throws Exception, IOException {
+ private void checkShutdownProgress(Client client) throws Exception,
+ IOException {
GearmanJob doShutdownJob = doShutdownJobs.get(client.getId());
-
+
if (doShutdownJob != null) {
GearmanJobStatus jobStatus = gearmanClient
.getJobStatus(doShutdownJob);
@@ -351,30 +356,32 @@ public class Shutdown extends Thread {
client.setState(ClientState.SHUTDOWN_COMMAND_SENT);
doShutdownJobs.remove(client.getId());
} else {
- logger.error(client.getIp() + " Cannot send shutdown command");
+ logger.error(client.getIp()
+ + " Cannot send shutdown command");
client
.setError("Sending the shutdown command has been failed.");
- //cannot send shutdown command, go in / errorState
+ // cannot send shutdown command, go in / errorState
client.setState(ClientState.SHUTDOWN_ERROR);
doShutdownJobs.remove(client.getId());
}
}
}
- }
+ }
}
-
+
private void pingShutdown(Client client) {
- GearmanJob job = GearmanJobImpl.createJob("ping",
- client.getIp().getBytes(), "ping" + client.getId());
+ GearmanJob job = GearmanJobImpl.createJob("ping", client.getIp()
+ .getBytes(), "ping" + client.getId());
gearmanClient.submit(job);
client.setState(ClientState.CHECK_PING_SHUTDOWN_PROGRESS);
pingShutdownJobs.put(client.getId(), job);
logger.info("ping " + client.getIp());
}
- private void checkPingShutdwonProgress(Client client) throws Exception, IOException {
+ private void checkPingShutdwonProgress(Client client) throws Exception,
+ IOException {
GearmanJob pingJobShutdown = pingShutdownJobs.get(client.getId());
-
+
if (pingJobShutdown != null) {
Date currentDate = new Date();
Long currentTimestamp = currentDate.getTime();
@@ -386,27 +393,34 @@ public class Shutdown extends Thread {
.getJobStatus(pingJobShutdown);
if (!jobStatus.isKnown() && pingJobShutdown.isDone()) {
GearmanJobResult pingJobRes = pingJobShutdown.get();
- String result = ByteUtils.fromUTF8Bytes(pingJobRes.getResults());
+ String result = ByteUtils.fromUTF8Bytes(pingJobRes
+ .getResults());
if (!result.isEmpty()) {
- JSONObject resultObj = (JSONObject) JSONValue.parse(result);
+ JSONObject resultObj = (JSONObject) JSONValue
+ .parse(result);
if (!resultObj.containsKey("err")) {
String alive = resultObj.get("alive").toString();
if (alive.equals("false")) {
- logger.info(client.getIp() + " is not alive anymore");
+ logger.info(client.getIp()
+ + " is not alive anymore");
client.setState(ClientState.SHUTDOWN_SUCCESS);
pingShutdownJobs.remove(client.getId());
} else if (alive.equals("true")) {
- logger.info(client.getIp()
- + " is still alive after shutdown command");
- client.setState(ClientState.PING_SHUTDOWN_AGAIN);
+ logger
+ .info(client.getIp()
+ + " is still alive after shutdown command");
+ client
+ .setState(ClientState.PING_SHUTDOWN_AGAIN);
}
} else {
- logger.error(client.getIp()
- + " Cannot send the ping after shutdown message.");
+ logger
+ .error(client.getIp()
+ + " Cannot send the ping after shutdown message.");
client
.setError("Sending the ping after shutdown message has been failed.");
/*
- * sending the ping after shutdown message has been failed
+ * sending the ping after shutdown message has been
+ * failed
*/
client.setState(ClientState.SHUTDOWN_ERROR);
pingJobs.remove(client.getId());
@@ -420,18 +434,18 @@ public class Shutdown extends Thread {
client.setState(ClientState.SHUTDOWN_ERROR);
pingShutdownJobs.remove(client.getId());
}
- }
+ }
}
-
+
private void ps(Client client) {
- GearmanJob job = GearmanJobImpl.createJob("ps", client.getIp().getBytes(),
- "ps" + client.getId());
+ GearmanJob job = GearmanJobImpl.createJob("ps", client.getIp()
+ .getBytes(), "ps" + client.getId());
gearmanClient.submit(job);
client.setState(ClientState.CHECK_PS_PROGRESS);
psJobs.put(client.getId(), job);
logger.info("ps " + client.getIp());
}
-
+
private void checkPsProgress(Client client) throws Exception, IOException {
GearmanJob psJob = psJobs.get(client.getId());
@@ -457,14 +471,14 @@ public class Shutdown extends Thread {
/*
* for (String whiteEntry : psWhitelist) { if
- * (ps.toString().contains(whiteEntry)) { whitelistFound = true;
- * } }
+ * (ps.toString().contains(whiteEntry)) { whitelistFound
+ * = true; } }
*/
if (blacklistFound) {
/*
- * if (whitelistFound) { logger.info(client.getIp() +
- * " is not working"); // is not working
+ * if (whitelistFound) { logger.info(client.getIp()
+ * + " is not working"); // is not working
* status.put(client.getId(), 4);
* psJobs.remove(client.getId());
*
diff --git a/gearman/controllerWorker/ControllerWorker/SomePingWorker.java b/gearman/controllerWorker/ControllerWorker/SomePingWorker.java
index afe221a..0f123c4 100644
--- a/gearman/controllerWorker/ControllerWorker/SomePingWorker.java
+++ b/gearman/controllerWorker/ControllerWorker/SomePingWorker.java
@@ -25,6 +25,7 @@ import org.apache.log4j.Logger;
public class SomePingWorker extends AbstractGearmanFunction {
static final Logger logger = Logger.getLogger(SomePingWorker.class);
+
@Override
public String getName() {
return "somePing";
@@ -75,14 +76,8 @@ public class SomePingWorker extends AbstractGearmanFunction {
}
remove.add(j);
}
- } catch (IllegalStateException e1) {
- e1.printStackTrace();
- } catch (IOException e1) {
- e1.printStackTrace();
- } catch (InterruptedException e) {
- e.printStackTrace();
- } catch (ExecutionException e) {
- e.printStackTrace();
+ } catch (Exception e) {
+ logger.error(e.getStackTrace());
}
}