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