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 baseSync; public BaseSync buildUpChain() { VisitorRegisterUpSync visitorRegisterSync = VisitorRegisterUpSync.getInstance(); AttenderRegisterUpSync attenderRegisterSync = AttenderRegisterUpSync.getInstance(); visitorRegisterSync.setNext(attenderRegisterSync); CheckInUpSync checkInUpSync = CheckInUpSync.getInstance(); attenderRegisterSync.setNext(checkInUpSync); OfflineSurveillanceUpSync offlineSurveillanceUpSync = OfflineSurveillanceUpSync.getInstance(); checkInUpSync.setNext(offlineSurveillanceUpSync); return visitorRegisterSync; } @Override public void run() { BaseSync baseSync = buildUpChain(); while (true) { try { baseSync.setComplete(false); if (baseSync.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(); } } } }