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