xuxiuxi
2017-08-01 21e08324c323d0c5d1e7cedc36323c554857a239
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package cn.com.basic.face.service.sync;
 
import java.util.Date;
 
import cn.com.basic.face.base.BaseApplication;
import cn.com.basic.face.service.sync.up.BaseSync;
import cn.com.basic.face.service.sync.up.CompanyUpSync;
import cn.com.basic.face.service.sync.up.DeviceUpSync;
import cn.com.basic.face.service.sync.up.DictionaryUpSync;
import cn.com.basic.face.service.sync.up.FileUpSync;
import cn.com.basic.face.service.sync.up.OfflineSurveillanceUpSync;
import cn.com.basic.face.service.sync.up.RegisterUpSync;
import cn.com.basic.face.service.sync.up.VisitUpSync;
 
public class SyncUpThread extends Thread {
 
    BaseSync firstUpSync;
 
    public void buildSyncChain() {
 
        //up
        firstUpSync = DictionaryUpSync.getInstance();
        DeviceUpSync deviceUpSync = DeviceUpSync.getInstance();
        CompanyUpSync companyUpSync = CompanyUpSync.getInstance();
        FileUpSync fileUpSync = new FileUpSync();
        OfflineSurveillanceUpSync offlineSurveillanceUpSync = new OfflineSurveillanceUpSync();
        RegisterUpSync registerUpSync = new RegisterUpSync();
        VisitUpSync visitUpSync = new VisitUpSync();
 
        firstUpSync.setNext(companyUpSync);
        companyUpSync.setNext(deviceUpSync);
        deviceUpSync.setNext(fileUpSync);
        fileUpSync.setNext(offlineSurveillanceUpSync);
        offlineSurveillanceUpSync.setNext(registerUpSync);
        registerUpSync.setNext(visitUpSync);
 
    }
 
    Date lastTime = new Date();
 
    @Override
    public void run() {
        buildSyncChain();
        while (true) {
            try {
                Date now = new Date();
                double minutes = (now.getTime() - lastTime.getTime())*1.0 / 1000 / 60;
                if (minutes >= 0.3) {
                    if (BaseApplication.getInstance().networkAvailable()) {
                        firstUpSync.setAllSyncComplete(false);
                        firstUpSync.sync();
                        lastTime = now;
                    }
                } else {
                    Thread.sleep(10*1000);
                }
            } catch (Exception e) {
                try {
                    Thread.sleep(10 * 1000);
                } catch (Exception e2) {
                    e2.printStackTrace();
                }
                e.printStackTrace();
            }
        }
 
    }
 
}