package project.data.job; import java.util.List; import kernel.util.ThreadUtils; import kernel.web.ApplicationUtil; import project.data.DataCache; import project.data.DataDBService; import project.data.KlineService; import project.data.model.Kline; import project.data.model.Realtime; import project.item.ItemService; import project.item.model.Item; import project.syspara.SysparaService; public class CleanDataJob { private DataDBService dataDBService; private ItemService itemService; private KlineService klineService; public void taskJob() { /** * 删除过期数据 */ this.dataDBService.deleteRealtime(-1); this.dataDBService.updateOptimize("T_REALTIME"); this.klineService.delete(Kline.PERIOD_1MIN, -1); this.klineService.delete(Kline.PERIOD_5MIN, -2); this.klineService.delete(Kline.PERIOD_15MIN, -6); this.klineService.delete(Kline.PERIOD_30MIN, -12); this.klineService.delete(Kline.PERIOD_60MIN, -24); this.klineService.delete(Kline.PERIOD_4HOUR, -96); this.dataDBService.updateOptimize("T_KLINE"); ThreadUtils.sleep(1000); /** * 重置实时数据历史缓存 */ SysparaService sysparaService =ApplicationUtil.getBean(SysparaService.class); int interval = sysparaService.find("data_interval").getInteger().intValue() / 1000; int num = (24 * 60 * 60) / interval; List item_list = itemService.cacheGetAll(); for (int i = 0; i < item_list.size(); i++) { Item item = item_list.get(i); List list = this.dataDBService.findRealtimeOneDay(item.getSymbol(),num); DataCache.getRealtimeHistory().put(item.getSymbol(), list); DataCache.getKline(item.getSymbol(), Kline.PERIOD_1MIN) .setKline(this.klineService.find(item.getSymbol(), Kline.PERIOD_1MIN, Integer.MAX_VALUE)); DataCache.getKline(item.getSymbol(), Kline.PERIOD_5MIN) .setKline(this.klineService.find(item.getSymbol(), Kline.PERIOD_5MIN, Integer.MAX_VALUE)); DataCache.getKline(item.getSymbol(), Kline.PERIOD_15MIN) .setKline(this.klineService.find(item.getSymbol(), Kline.PERIOD_15MIN, Integer.MAX_VALUE)); DataCache.getKline(item.getSymbol(), Kline.PERIOD_30MIN) .setKline(this.klineService.find(item.getSymbol(), Kline.PERIOD_30MIN, Integer.MAX_VALUE)); DataCache.getKline(item.getSymbol(), Kline.PERIOD_60MIN) .setKline(this.klineService.find(item.getSymbol(), Kline.PERIOD_60MIN, Integer.MAX_VALUE)); DataCache.getKline(item.getSymbol(), Kline.PERIOD_4HOUR) .setKline(this.klineService.find(item.getSymbol(), Kline.PERIOD_4HOUR, Integer.MAX_VALUE)); } } public void setItemService(ItemService itemService) { this.itemService = itemService; } public void setDataDBService(DataDBService dataDBService) { this.dataDBService = dataDBService; } public void setKlineService(KlineService klineService) { this.klineService = klineService; } }