package cn.com.basic.face.util; import cn.com.basic.face.service.sync.up.AttenderRegisterUpSync; import cn.com.basic.face.service.sync.up.BaseSync; import cn.com.basic.face.service.sync.up.CheckInUpSync; import cn.com.basic.face.service.sync.up.OfflineSurveillanceUpSync; import cn.com.basic.face.service.sync.up.VisitorRegisterUpSync; public class SyncUpAndDownThread extends Thread { public boolean isThisTimeSyncComplete = false; BaseSync firstSync; public BaseSync buildSyncChain() { VisitorRegisterUpSync visitorRegisterUpSync = VisitorRegisterUpSync.getInstance(); AttenderRegisterUpSync attenderRegisterUpSync = AttenderRegisterUpSync.getInstance(); visitorRegisterUpSync.setNext(attenderRegisterUpSync); CheckInUpSync checkInUpSync = CheckInUpSync.getInstance(); attenderRegisterUpSync.setNext(checkInUpSync); OfflineSurveillanceUpSync offlineSurveillanceUpSync = OfflineSurveillanceUpSync.getInstance(); checkInUpSync.setNext(offlineSurveillanceUpSync); return visitorRegisterUpSync; } @Override public void run() { firstSync = buildSyncChain(); while (true) { try { firstSync.setComplete(false); if (firstSync.lastUpSyncComplete()) { Thread.sleep(5 * 60 * 1000); } else { Thread.sleep(10*1000); return; } } catch (Exception e) { try { Thread.sleep(30 * 1000); } catch (Exception e2) { e2.printStackTrace(); } e.printStackTrace(); } } } }