From c338aa60df58bee9f4c25afedf94fe6930a119c1 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 29 七月 2020 19:01:56 +0800 Subject: [PATCH] SpringContext中的循环任务优化,添加业务监控 --- fanli/src/main/java/com/yeshi/fanli/job/order/taobao/UpdateTBRelationAndSpecialOrderJob.java | 251 +++++++++++++++++++++++++------------------------- 1 files changed, 125 insertions(+), 126 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/job/order/taobao/UpdateTBRelationAndSpecialOrderJob.java b/fanli/src/main/java/com/yeshi/fanli/job/order/taobao/UpdateTBRelationAndSpecialOrderJob.java index ef10549..def5e8b 100644 --- a/fanli/src/main/java/com/yeshi/fanli/job/order/taobao/UpdateTBRelationAndSpecialOrderJob.java +++ b/fanli/src/main/java/com/yeshi/fanli/job/order/taobao/UpdateTBRelationAndSpecialOrderJob.java @@ -7,6 +7,7 @@ import javax.annotation.Resource; +import com.yeshi.fanli.util.*; import org.springframework.stereotype.Component; import com.xxl.job.core.biz.model.ReturnT; @@ -14,10 +15,6 @@ import com.yeshi.fanli.entity.taobao.TaoBaoOrder; import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.order.tb.TaoBaoOrderService; -import com.yeshi.fanli.util.CMQManager; -import com.yeshi.fanli.util.RedisKeyEnum; -import com.yeshi.fanli.util.RedisManager; -import com.yeshi.fanli.util.StringUtil; import org.yeshi.utils.TimeUtil; import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil; import com.yeshi.fanli.util.taobao.TaoKeApiUtil; @@ -25,147 +22,149 @@ /** * 娣樺疂娓犻亾璁㈠崟鏇存柊 - * - * @author hexiaohui * + * @author hexiaohui */ @Component public class UpdateTBRelationAndSpecialOrderJob { - @Resource - private TaoBaoOrderService taoBaoOrderService; + @Resource + private TaoBaoOrderService taoBaoOrderService; - @Resource - private RedisManager redisManager; + @Resource + private RedisManager redisManager; - /** - * 鏇存柊娓犻亾璁㈠崟 - * - * @param fromPage - * 寮�濮嬮〉鐮� - * @param toPage - * 缁撴潫椤电爜锛堟瘡椤�100鏉℃暟鎹級 - */ - public void updateRelationAndSpecialOrder(long startTime, long endTime) { - List<TaoBaoOrder> list = TaoKeOrderApiUtil.getTaoBaoSpecialOrderList(startTime, endTime, 1); - List<TaoBaoOrder> list1 = TaoKeOrderApiUtil.getTaoBaoRelationOrderList(startTime, endTime, 1); - if (list1 != null && list1.size() > 0) - list.addAll(list1); - // 鐖彇鍒扮殑璁㈠崟鍙� - if (list != null) - for (TaoBaoOrder order : list) { - LogHelper.orderInfo("浼氬憳/娓犻亾鐖彇鍒扮殑璁㈠崟鍙�:" + order.getOrderId()); - } + /** + * 鏇存柊娓犻亾璁㈠崟 + * @param startTime + * @param endTime + */ + public void updateRelationAndSpecialOrder(long startTime, long endTime) { + List<TaoBaoOrder> list = TaoKeOrderApiUtil.getTaoBaoSpecialOrderList(startTime, endTime, 1); + List<TaoBaoOrder> list1 = TaoKeOrderApiUtil.getTaoBaoRelationOrderList(startTime, endTime, 1); + if (list1 != null && list1.size() > 0) + list.addAll(list1); + // 鐖彇鍒扮殑璁㈠崟鍙� + if (list != null) + for (TaoBaoOrder order : list) { + LogHelper.orderInfo("浼氬憳/娓犻亾鐖彇鍒扮殑璁㈠崟鍙�:" + order.getOrderId()); + } - addRelationAndSpecialOrder(list); - } + addRelationAndSpecialOrder(list); + } - /** - * 鎸変粯娆炬椂闂存煡璇� - * - * @param startTime - * @param endTime - */ - public void updateRelationAndSpecialPaidOrder(long startTime, long endTime) { - List<TaoBaoOrder> list = TaoKeOrderApiUtil.getTaoBaoSpecialOrderList(startTime, endTime, 2); - List<TaoBaoOrder> list1 = TaoKeOrderApiUtil.getTaoBaoRelationOrderList(startTime, endTime, 2); - if (list1 != null && list1.size() > 0) - list.addAll(list1); - // 鐖彇鍒扮殑璁㈠崟鍙� - if (list != null) - for (TaoBaoOrder order : list) { - LogHelper.orderInfo("浼氬憳/娓犻亾鐖彇鍒扮殑璁㈠崟鍙�:" + order.getOrderId()); - } + /** + * 鎸変粯娆炬椂闂存煡璇� + * + * @param startTime + * @param endTime + */ + public void updateRelationAndSpecialPaidOrder(long startTime, long endTime) { + List<TaoBaoOrder> list = TaoKeOrderApiUtil.getTaoBaoSpecialOrderList(startTime, endTime, 2); + List<TaoBaoOrder> list1 = TaoKeOrderApiUtil.getTaoBaoRelationOrderList(startTime, endTime, 2); + if (list1 != null && list1.size() > 0) + list.addAll(list1); + // 鐖彇鍒扮殑璁㈠崟鍙� + if (list != null) + for (TaoBaoOrder order : list) { + LogHelper.orderInfo("浼氬憳/娓犻亾鐖彇鍒扮殑璁㈠崟鍙�:" + order.getOrderId()); + } - addRelationAndSpecialOrder(list); - } + addRelationAndSpecialOrder(list); + } - public void updateRelationAndSpecialSettleOrder(long startTime, long endTime) { - List<TaoBaoOrder> list = TaoKeOrderApiUtil.getTaoBaoSpecialOrderList(startTime, endTime, 3); - List<TaoBaoOrder> list1 = TaoKeOrderApiUtil.getTaoBaoRelationOrderList(startTime, endTime, 3); - if (list1 != null && list1.size() > 0) - list.addAll(list1); - // 鐖彇鍒扮殑璁㈠崟鍙� - if (list != null) - for (TaoBaoOrder order : list) { - LogHelper.orderInfo("浼氬憳/娓犻亾鐖彇鍒扮殑璁㈠崟鍙�:" + order.getOrderId()); - } - addRelationAndSpecialOrder(list); - } + public void updateRelationAndSpecialSettleOrder(long startTime, long endTime) { + List<TaoBaoOrder> list = TaoKeOrderApiUtil.getTaoBaoSpecialOrderList(startTime, endTime, 3); + List<TaoBaoOrder> list1 = TaoKeOrderApiUtil.getTaoBaoRelationOrderList(startTime, endTime, 3); + if (list1 != null && list1.size() > 0) + list.addAll(list1); + // 鐖彇鍒扮殑璁㈠崟鍙� + if (list != null) + for (TaoBaoOrder order : list) { + LogHelper.orderInfo("浼氬憳/娓犻亾鐖彇鍒扮殑璁㈠崟鍙�:" + order.getOrderId()); + } + addRelationAndSpecialOrder(list); + } - private void addRelationAndSpecialOrder(List<TaoBaoOrder> orderList) { - try { - taoBaoOrderService.addTaoBaoOrderList(orderList); - } catch (Exception e) { - LogHelper.errorDetailInfo(e); - } + private void addRelationAndSpecialOrder(List<TaoBaoOrder> orderList) { + //5鍒嗛挓涓嶆洿鏂板氨鎶ヨ + try { + redisManager.cacheCommonString(RedisKeyEnum.monitor.getKey() + Constant.SOURCE_TYPE_TAOBAO, "1", 60 * 5); + } catch (Exception e) { + } - try { - Map<String, List<TaoBaoOrder>> map = TaoBaoOrderUtil.classifyTaoBaoOrderByOrderId(orderList); - if (map != null) { - Iterator<String> its = map.keySet().iterator(); - while (its.hasNext()) { - String key = its.next(); - List<TaoBaoOrder> orders = map.get(key); - String redisKey = RedisKeyEnum.getRedisKey(RedisKeyEnum.addOrderQueue, - TaoBaoOrderUtil.getOrderDataHashCode(orders)); - // redis鍋氶鐜囬檺鍒� - try { - if (!StringUtil.isNullOrEmpty(redisManager.getCommonString(redisKey))) { - continue; - } + try { + taoBaoOrderService.addTaoBaoOrderList(orderList); + } catch (Exception e) { + LogHelper.errorDetailInfo(e); + } - } catch (Exception e) { + try { + Map<String, List<TaoBaoOrder>> map = TaoBaoOrderUtil.classifyTaoBaoOrderByOrderId(orderList); + if (map != null) { + Iterator<String> its = map.keySet().iterator(); + while (its.hasNext()) { + String key = its.next(); + List<TaoBaoOrder> orders = map.get(key); + String redisKey = RedisKeyEnum.getRedisKey(RedisKeyEnum.addOrderQueue, + TaoBaoOrderUtil.getOrderDataHashCode(orders)); + // redis鍋氶鐜囬檺鍒� + try { + if (!StringUtil.isNullOrEmpty(redisManager.getCommonString(redisKey))) { + continue; + } - } + } catch (Exception e) { - LogHelper.orderInfo("娣诲姞鍒伴槦鍒�:" + key); - if (orders != null && orders.size() > 0 && System.currentTimeMillis() - - TimeUtil.convertToTimeTemp(orders.get(0).getCreateTime(), "yyyy-MM-dd HH:mm:ss") < 1000 - * 60 * 10L)// 10鍒嗛挓鍐呬骇鐢熺殑鍗曚綔涓烘柊璁㈠崟澶勭悊 - CMQManager.getInstance().addTaoBaoNewOrderMsg(key); - else - CMQManager.getInstance().addTaoBaoOrderMsg(key); + } - try { - // 20鍒嗛挓鍐呬笉鍐嶅鐞� - redisManager.cacheCommonString(redisKey, "1", 60 * 20); - } catch (Exception e) { + LogHelper.orderInfo("娣诲姞鍒伴槦鍒�:" + key); + if (orders != null && orders.size() > 0 && System.currentTimeMillis() + - TimeUtil.convertToTimeTemp(orders.get(0).getCreateTime(), "yyyy-MM-dd HH:mm:ss") < 1000 + * 60 * 10L)// 10鍒嗛挓鍐呬骇鐢熺殑鍗曚綔涓烘柊璁㈠崟澶勭悊 + CMQManager.getInstance().addTaoBaoNewOrderMsg(key); + else + CMQManager.getInstance().addTaoBaoOrderMsg(key); - } - } - } - } catch (Exception e) { - LogHelper.errorDetailInfo(e); - } - } + try { + // 20鍒嗛挓鍐呬笉鍐嶅鐞� + redisManager.cacheCommonString(redisKey, "1", 60 * 20); + } catch (Exception e) { - @XxlJob("updateTBRelationAndSpecialOrderHandler") - public ReturnT<String> updateTBRelationAndSpecialOrder(String param) throws Exception { - if ("1".equalsIgnoreCase(param)) {// 鐖彇杩�20鍒嗛挓鐨勬暟鎹� - doJob1(); - } else if ("1day".equalsIgnoreCase(param)) {// 姣�5鍒嗛挓鏇存柊锛堣繎1澶╂暟鎹級 - doJob2(); - } - return ReturnT.SUCCESS; - } + } + } + } + } catch (Exception e) { + LogHelper.errorDetailInfo(e); + } + } - // 姣�30s鐖彇涓�娆� - public void doJob1() { - LogHelper.job("鐖崟:30s鐖彇涓�娆″崟"); - Date systemDate = TaoKeApiUtil.getTaoBaoSystemTime(); - long endTime = systemDate != null ? systemDate.getTime() : System.currentTimeMillis(); - updateRelationAndSpecialOrder(endTime - 1000 * 60 * 20L, endTime); - updateRelationAndSpecialPaidOrder(endTime - 1000 * 60 * 20L, endTime); - updateRelationAndSpecialSettleOrder(endTime - 1000 * 60 * 20L, endTime); - } + @XxlJob("updateTBRelationAndSpecialOrderHandler") + public ReturnT<String> updateTBRelationAndSpecialOrder(String param) throws Exception { + if ("1".equalsIgnoreCase(param)) {// 鐖彇杩�20鍒嗛挓鐨勬暟鎹� + doJob1(); + } else if ("1day".equalsIgnoreCase(param)) {// 姣�5鍒嗛挓鏇存柊锛堣繎1澶╂暟鎹級 + doJob2(); + } + return ReturnT.SUCCESS; + } - // 姣�5鍒嗛挓鏇存柊锛堣繎1澶╂暟鎹級 - public void doJob2() { - LogHelper.job("鐖崟:5min鐖彇涓�娆″崟"); - Date systemDate = TaoKeApiUtil.getTaoBaoSystemTime(); - long endTime = systemDate != null ? systemDate.getTime() : System.currentTimeMillis(); - updateRelationAndSpecialOrder(endTime - 1000 * 60 * 60 * 24L, endTime); - updateRelationAndSpecialSettleOrder(endTime - 1000 * 60 * 60 * 24L, endTime); - } + // 姣�30s鐖彇涓�娆� + public void doJob1() { + LogHelper.job("鐖崟:30s鐖彇涓�娆″崟"); + Date systemDate = TaoKeApiUtil.getTaoBaoSystemTime(); + long endTime = systemDate != null ? systemDate.getTime() : System.currentTimeMillis(); + updateRelationAndSpecialOrder(endTime - 1000 * 60 * 20L, endTime); + updateRelationAndSpecialPaidOrder(endTime - 1000 * 60 * 20L, endTime); + updateRelationAndSpecialSettleOrder(endTime - 1000 * 60 * 20L, endTime); + } + + // 姣�5鍒嗛挓鏇存柊锛堣繎1澶╂暟鎹級 + public void doJob2() { + LogHelper.job("鐖崟:5min鐖彇涓�娆″崟"); + Date systemDate = TaoKeApiUtil.getTaoBaoSystemTime(); + long endTime = systemDate != null ? systemDate.getTime() : System.currentTimeMillis(); + updateRelationAndSpecialOrder(endTime - 1000 * 60 * 60 * 24L, endTime); + updateRelationAndSpecialSettleOrder(endTime - 1000 * 60 * 60 * 24L, endTime); + } } -- Gitblit v1.8.0