package project.data.job; import java.util.ArrayList; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import kernel.util.ThreadUtils; import project.data.DataDBService; import project.data.model.Realtime; public class SaveRealtimeServer implements Runnable { private Logger logger = LoggerFactory.getLogger(SaveRealtimeServer.class); private DataDBService dataDBService; public void start() { new Thread(this, "SaveRealtimeServer").start(); if (logger.isInfoEnabled()) { logger.info("启动SaveRealtimeServer!"); } } public void run() { while (true) { try { int size = RealtimeQueue.size(); /** * 现量轮询一圈 */ List list = new ArrayList(); for (int i = 0; i < size; i++) { Realtime item = RealtimeQueue.poll(); list.add(item); } if (list.size() > 0) { dataDBService.saveBatch(list); } } catch (Throwable e) { logger.error(" run fail", e); } finally { ThreadUtils.sleep(60 * 1000); } } } public void setDataDBService(DataDBService dataDBService) { this.dataDBService = dataDBService; } }