Add auto Update
[rtmpclient.git] / app / src / main / java / ai / suanzi / rtmpclient / ServiceHealthMonitor.java
1 package ai.suanzi.rtmpclient;
2
3 import org.apache.log4j.Logger;
4 public class ServiceHealthMonitor extends Thread {
5     private long count = 0;
6     private long lastCnt = 0;
7     private int interval = 60; // seconds
8
9     private Callback mCallback;
10
11     public ServiceHealthMonitor(Callback cb){
12         mCallback = cb;
13     }
14
15     private Logger gLogger = Logger.getLogger("ServiceHealthMonitor");
16     @Override
17     public void run(){
18         while (true){
19             try {
20                 sleep(interval * 1000);
21             }catch (InterruptedException e){
22                 gLogger.error("sleep - error: " + e.getMessage());
23             }
24             if(!isHealth())
25                 if(mCallback != null) mCallback.onNotHealthy();
26         }
27     }
28
29     public synchronized void record(){
30         gLogger.error("record " + count);
31         count++;
32     }
33
34     public synchronized void setInterval (int time) {
35         interval = time;
36     }
37
38     private synchronized boolean isHealth (){
39         if(count == lastCnt) {
40             gLogger.error("isHealth - count = " + count + ". lastCnt " + lastCnt);
41             return false;
42         }
43         lastCnt = count;
44         return true;
45     }
46
47     public interface Callback {
48         void onNotHealthy();
49     }
50 }