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()); } } }