summaryrefslogtreecommitdiffstats
path: root/gearman/controllerWorker/ControllerWorker/PoolctrlRequest.java
diff options
context:
space:
mode:
Diffstat (limited to 'gearman/controllerWorker/ControllerWorker/PoolctrlRequest.java')
-rwxr-xr-xgearman/controllerWorker/ControllerWorker/PoolctrlRequest.java83
1 files changed, 83 insertions, 0 deletions
diff --git a/gearman/controllerWorker/ControllerWorker/PoolctrlRequest.java b/gearman/controllerWorker/ControllerWorker/PoolctrlRequest.java
new file mode 100755
index 0000000..086b88b
--- /dev/null
+++ b/gearman/controllerWorker/ControllerWorker/PoolctrlRequest.java
@@ -0,0 +1,83 @@
+package ControllerWorker;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.HttpURLConnection;
+import java.net.URL;
+
+import org.apache.log4j.Logger;
+
+public class PoolctrlRequest extends Thread {
+ private static final Logger logger = Logger.getLogger(PoolctrlRequest.class);
+ private URL runURL;
+ private URL reportURL;
+ private final long updatePeriod;
+
+ public PoolctrlRequest(String runURL, String reportURL, long updatePeriod) {
+ try {
+ this.runURL = new URL(runURL);
+ this.reportURL = new URL(reportURL);
+ } catch (Exception e) {
+ logger.error(e.toString());
+ }
+ this.updatePeriod = updatePeriod;
+ }
+
+ public void run() {
+ workerLoop();
+ }
+
+ public void workerLoop() {
+ long beginTime;
+ long timeTaken;
+ long timeLeft;
+ while (true) {
+ try {
+ beginTime = System.nanoTime();
+ update();
+ timeTaken = System.nanoTime() - beginTime;
+ timeLeft = (updatePeriod - timeTaken) / 1000000;
+ if (timeLeft < 10)
+ timeLeft = 10;
+ Thread.sleep(timeLeft);
+ } catch (Exception e) {
+ logger.error(e.toString());
+ }
+ }
+ }
+
+ public void update() {
+ HttpURLConnection connection = null;
+ BufferedReader rd = null;
+ StringBuilder sb = null;
+ String line = null;
+ try {
+ connection = (HttpURLConnection) runURL.openConnection();
+ connection.setRequestMethod("GET");
+ connection.setDoOutput(true);
+ connection.connect();
+ rd = new BufferedReader(new InputStreamReader(connection
+ .getInputStream()));
+ sb = new StringBuilder();
+
+ while ((line = rd.readLine()) != null) {
+ sb.append(line + '\n');
+ }
+ logger.info(sb.toString());
+ connection = (HttpURLConnection) reportURL.openConnection();
+ connection.setRequestMethod("GET");
+ connection.setDoOutput(true);
+ connection.connect();
+ rd = new BufferedReader(new InputStreamReader(connection
+ .getInputStream()));
+ sb = new StringBuilder();
+
+ while ((line = rd.readLine()) != null) {
+ sb.append(line + '\n');
+ }
+ logger.info(sb.toString());
+ } catch (Exception e) {
+ logger.error(e.toString());
+ }
+ }
+} \ No newline at end of file