Advertisement
ballchaichana

HealthCheckServlet

Oct 11th, 2018
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.75 KB | None | 0 0
  1. package th.in.oneauthen.servlet;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6. import java.net.URISyntaxException;
  7. import java.util.Date;
  8. import java.util.List;
  9. import java.util.concurrent.Executors;
  10. import java.util.concurrent.ScheduledExecutorService;
  11. import java.util.concurrent.TimeUnit;
  12.  
  13. import javax.servlet.ServletConfig;
  14. import javax.servlet.ServletException;
  15. import javax.servlet.annotation.WebServlet;
  16. import javax.servlet.http.HttpServlet;
  17. import javax.servlet.http.HttpServletRequest;
  18. import javax.servlet.http.HttpServletResponse;
  19.  
  20.  
  21. import org.apache.http.HttpResponse;
  22. import org.apache.http.client.ClientProtocolException;
  23. import org.apache.http.client.HttpClient;
  24. import org.apache.http.client.methods.HttpGet;
  25. import org.apache.http.client.utils.URIBuilder;
  26. import org.apache.http.impl.client.HttpClientBuilder;
  27.  
  28.  
  29. import com.google.gson.Gson;
  30.  
  31.  
  32. import th.in.oneauthen.object.HelpcheckDB;
  33. import th.in.oneauthen.object.SystemConfigDB;
  34. import th.in.oneauthen.object.DAO.HelpcheckDAO;
  35. import th.in.oneauthen.object.DAO.SystemConfigDAO;
  36.  
  37.  
  38.  
  39. @WebServlet(description = "test for loadstart", urlPatterns = { "/HealthCheckServlet" },loadOnStartup = 5)
  40. public class HealthCheckServlet extends HttpServlet {
  41.     private static final long serialVersionUID = 1L;
  42.     public static String RESPONSE_QUERY = "query";
  43.        
  44.     /**
  45.      * @see HttpServlet#HttpServlet()
  46.      */
  47.     public HealthCheckServlet() {
  48.         super();
  49.         // TODO Auto-generated constructor stub
  50.     }
  51.  
  52.     /**
  53.      * @see Servlet#init(ServletConfig)
  54.      */
  55.     public void init(ServletConfig config) throws ServletException {
  56.        
  57.                 Runnable runnable = new Runnable() {
  58.                   public void run() {
  59.                     // task to run goes here
  60.  
  61.                      
  62.                       query();
  63.                       try {
  64.                         check() ;
  65.                     } catch (URISyntaxException | IOException e) {
  66.                         // TODO Auto-generated catch block
  67.                         e.printStackTrace();
  68.                     }
  69.                   }
  70.                 };
  71.                
  72.                 ScheduledExecutorService service = Executors
  73.                                 .newSingleThreadScheduledExecutor();
  74.                 service.scheduleAtFixedRate(runnable, 0, 1, TimeUnit.MINUTES); 
  75.        
  76.     }
  77.  
  78.     /**
  79.      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
  80.      */
  81.     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  82.         // TODO Auto-generated method stub
  83.         response.getWriter().append("Served at: ").append(request.getContextPath());
  84.     }
  85.  
  86.     /**
  87.      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
  88.      */
  89.     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  90.         // TODO Auto-generated method stub
  91.         doGet(request, response);
  92.     }
  93.    
  94.      public static void check() throws URISyntaxException, ClientProtocolException, IOException {
  95.             BufferedReader br = null;
  96.             String output;
  97.             StringBuilder responseBuilder = null;
  98.  
  99.             HttpClient httpClient = HttpClientBuilder.create().build();
  100.             URIBuilder uriBuilder;
  101.            
  102.             String checkURL = null;
  103.  
  104.             try {
  105.                 SystemConfigDB sysConfig = new SystemConfigDAO().find("CHECK_URL");
  106.                 if (sysConfig != null)
  107.                     checkURL = sysConfig.getValue();
  108.                  
  109.             } catch (Exception e) {
  110.                 e.printStackTrace();
  111.             }
  112.  
  113.  
  114.  
  115.             int start = (int) System.currentTimeMillis();
  116.                 uriBuilder = new URIBuilder(checkURL);
  117.                 HttpGet getMethod = new HttpGet(uriBuilder.build());
  118.  
  119.  
  120.                 HttpResponse httpResponse = httpClient.execute(getMethod);
  121.                 int responseCode = httpResponse.getStatusLine().getStatusCode();
  122.                 int end = (int) (System.currentTimeMillis()-start);
  123.                 System.out.println(end +"ms");
  124.                 if (responseCode == 201 || responseCode == 200) {
  125.                     br = new BufferedReader(new InputStreamReader((httpResponse.getEntity().getContent())));
  126.                     responseBuilder = new StringBuilder();
  127.                     while ((output = br.readLine()) != null) {
  128.                         responseBuilder.append(output);
  129.                     }
  130.                     System.out.println(responseBuilder.toString());
  131.                     System.out.println(new Date());
  132.                    
  133.                     HelpcheckDAO checkDao = new HelpcheckDAO();
  134.                     HelpcheckDB check = new HelpcheckDB();
  135.                     check.setStatus(responseBuilder.toString());
  136.                     check.setTimeUse(end);
  137.                     check.setTimeNow(new Date());
  138.                     try {
  139.                         checkDao.save(check);
  140.                     } catch (Exception e) {
  141.                         e.printStackTrace();
  142.                     }
  143.  
  144.                 } else {
  145.                     System.out.println("Failed : HTTP error code : " + httpResponse.getStatusLine().getStatusCode());
  146.                 }
  147.             }
  148.      public static void query() {
  149.          
  150.          HelpcheckDAO check  = new HelpcheckDAO();
  151.          List<HelpcheckDB> listCheck = check.getList();
  152.          RESPONSE_QUERY = new Gson().toJson(listCheck);
  153.  
  154.          
  155.      }
  156.      
  157.  
  158.  
  159. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement