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/jd/UpdateJDOrderJob.java | 303 +++++++++++++++++++++++++------------------------ 1 files changed, 155 insertions(+), 148 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/job/order/jd/UpdateJDOrderJob.java b/fanli/src/main/java/com/yeshi/fanli/job/order/jd/UpdateJDOrderJob.java index 1e8cf73..eed5117 100644 --- a/fanli/src/main/java/com/yeshi/fanli/job/order/jd/UpdateJDOrderJob.java +++ b/fanli/src/main/java/com/yeshi/fanli/job/order/jd/UpdateJDOrderJob.java @@ -6,6 +6,7 @@ import javax.annotation.Resource; +import com.yeshi.fanli.util.Constant; import org.springframework.stereotype.Component; import com.xxl.job.core.biz.model.ReturnT; @@ -26,166 +27,172 @@ @Component public class UpdateJDOrderJob { - @Resource - private JDOrderService jdOrderService; + @Resource + private JDOrderService jdOrderService; - @Resource - private RedisManager redisManager; + @Resource + private RedisManager redisManager; - /** - * 淇濆瓨璁㈠崟 - * - * @param jdOrderList - */ - public void saveJDOrders(List<JDOrder> jdOrderList) { - for (JDOrder order : jdOrderList) { - LogHelper.orderInfo("浜笢璁㈠崟:" + order.getOrderId() + "-" + order.getValidCode()); - if (order.getValidCode() == 15)// 杩囨护鎺夊緟浠樻 - continue; + /** + * 淇濆瓨璁㈠崟 + * + * @param jdOrderList + */ + public void saveJDOrders(List<JDOrder> jdOrderList) { + //5鍒嗛挓涓嶆洿鏂板氨鎶ヨ + try { + redisManager.cacheCommonString(RedisKeyEnum.monitor.getKey() + Constant.SOURCE_TYPE_JD, "1", 60 * 5); + } catch (Exception e) { + } - // 闃叉澶氫釜鍟嗗搧鎷嗗崟闂锛岀埇鍙� - if (order.getOrderItemList().size() > 1 - && order.getOrderTime() > System.currentTimeMillis() - 1000 * 60 * 3L) { - continue; - } + for (JDOrder order : jdOrderList) { + LogHelper.orderInfo("浜笢璁㈠崟:" + order.getOrderId() + "-" + order.getValidCode()); + if (order.getValidCode() == 15)// 杩囨护鎺夊緟浠樻 + continue; - try { - jdOrderService.addJDOrder(order); - /** - * 鍋氶鐜囬檺鍒� - */ - String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.JDOrder, order.getOrderId() + ""); - String result = redisManager.getCommonString(key); - // 鍒ゆ柇 - if (StringUtil.isNullOrEmpty(result)) { - JDOrderCMQManager.getInstance().addJDOrder(order.getOrderId() + ""); - redisManager.cacheCommonString(key, "1", 60 * 60 * 2);// 2灏忔椂鍐呬笉鍐嶆洿鏂� - } - } catch (JDOrderException e) { - e.printStackTrace(); - } - } - } + // 闃叉澶氫釜鍟嗗搧鎷嗗崟闂锛岀埇鍙� + if (order.getOrderItemList().size() > 1 + && order.getOrderTime() > System.currentTimeMillis() - 1000 * 60 * 3L) { + continue; + } - /** - * 蹇�熻鍗曟洿鏂帮紙鐖彇鏈皬鏃跺唴鐨勫崟,姣忓垎閽熶竴娆★級 - */ - @XxlJob("updateJDOrderHandler") - public ReturnT<String> updateJDSoonOrder(String param) throws Exception { - if ("1".equalsIgnoreCase(param)) {// 鏇存柊鏈皬鏃跺唴鐨勫崟 - LogHelper.job("寮�濮嬬埇鍙栦含涓滆鍗�"); - long now = System.currentTimeMillis(); + try { + jdOrderService.addJDOrder(order); + /** + * 鍋氶鐜囬檺鍒� + */ + String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.JDOrder, order.getOrderId() + ""); + String result = redisManager.getCommonString(key); + // 鍒ゆ柇 + if (StringUtil.isNullOrEmpty(result)) { + JDOrderCMQManager.getInstance().addJDOrder(order.getOrderId() + ""); + redisManager.cacheCommonString(key, "1", 60 * 60 * 2);// 2灏忔椂鍐呬笉鍐嶆洿鏂� + } + } catch (JDOrderException e) { + e.printStackTrace(); + } + } + } - JDOrderResult result = JDApiUtil.getOrderList(1, 200, new Date(now), JDApiUtil.ORDER_TYPE_CREATETIME); - if (result != null && result.getOrderList() != null) - saveJDOrders(result.getOrderList()); - // 鏌ヨ涓婁釜灏忔椂鐨� - result = JDApiUtil.getOrderList(1, 200, new Date(now - 1000 * 60 * 60L), JDApiUtil.ORDER_TYPE_CREATETIME); - if (result != null && result.getOrderList() != null) - saveJDOrders(result.getOrderList()); - } else if ("1hour".equalsIgnoreCase(param)) {// 鏇存柊1灏忔椂鍐呯殑璁㈠崟 - updateUpdateOrder(); - } else if ("1day".equalsIgnoreCase(param)) {// 鏇存柊1澶╁唴鐨勮鍗� - updateLatestDayOrder(new Date(System.currentTimeMillis())); - } else if ("3day".equalsIgnoreCase(param)) {// 鏇存柊鏈�杩�3澶╂洿鏂扮殑鏁版嵁 - updateLatest3DayOrder(); - } + /** + * 蹇�熻鍗曟洿鏂帮紙鐖彇鏈皬鏃跺唴鐨勫崟,姣忓垎閽熶竴娆★級 + */ + @XxlJob("updateJDOrderHandler") + public ReturnT<String> updateJDSoonOrder(String param) throws Exception { + if ("1".equalsIgnoreCase(param)) {// 鏇存柊鏈皬鏃跺唴鐨勫崟 + LogHelper.job("寮�濮嬬埇鍙栦含涓滆鍗�"); + long now = System.currentTimeMillis(); - return ReturnT.SUCCESS; - } + JDOrderResult result = JDApiUtil.getOrderList(1, 200, new Date(now), JDApiUtil.ORDER_TYPE_CREATETIME); + if (result != null && result.getOrderList() != null) + saveJDOrders(result.getOrderList()); + // 鏌ヨ涓婁釜灏忔椂鐨� + result = JDApiUtil.getOrderList(1, 200, new Date(now - 1000 * 60 * 60L), JDApiUtil.ORDER_TYPE_CREATETIME); + if (result != null && result.getOrderList() != null) + saveJDOrders(result.getOrderList()); + } else if ("1hour".equalsIgnoreCase(param)) {// 鏇存柊1灏忔椂鍐呯殑璁㈠崟 + updateUpdateOrder(); + } else if ("1day".equalsIgnoreCase(param)) {// 鏇存柊1澶╁唴鐨勮鍗� + updateLatestDayOrder(new Date(System.currentTimeMillis())); + } else if ("3day".equalsIgnoreCase(param)) {// 鏇存柊鏈�杩�3澶╂洿鏂扮殑鏁版嵁 + updateLatest3DayOrder(); + } - /** - * 鐖彇鏈�杩戜竴灏忔椂鍐呯殑鐘舵�佹洿鏂颁簡鐨勫崟(10鍒嗛挓涓�娆�) - */ + return ReturnT.SUCCESS; + } - public void updateUpdateOrder() { - List<JDOrder> jdOrderList = new ArrayList<>(); - int pageSize = 200; - int page = 1; - JDOrderResult result = JDApiUtil.getOrderList(page++, pageSize, new Date(), JDApiUtil.ORDER_TYPE_UPDATETIME); - if (result != null) { - jdOrderList.addAll(result.getOrderList()); - while (result != null && result.isHasMore()) { - result = JDApiUtil.getOrderList(page++, pageSize, new Date(), JDApiUtil.ORDER_TYPE_UPDATETIME); - if (result != null) - jdOrderList.addAll(result.getOrderList()); - } - } - saveJDOrders(jdOrderList); - } + /** + * 鐖彇鏈�杩戜竴灏忔椂鍐呯殑鐘舵�佹洿鏂颁簡鐨勫崟(10鍒嗛挓涓�娆�) + */ - /** - * 鏇存柊涓�涓皬鏃剁殑璁㈠崟 - * - * @param date - */ - private List<JDOrder> getHourOrder(Date date) { - List<JDOrder> jdOrderList = new ArrayList<>(); - int pageSize = 200; - int page = 1; - JDOrderResult result = JDApiUtil.getOrderList(page++, pageSize, date, JDApiUtil.ORDER_TYPE_UPDATETIME); - if (result != null) { - jdOrderList.addAll(result.getOrderList()); - while (result != null && result.isHasMore()) { - result = JDApiUtil.getOrderList(page++, pageSize, date, JDApiUtil.ORDER_TYPE_UPDATETIME); - if (result != null) - jdOrderList.addAll(result.getOrderList()); - } - } - return jdOrderList; - } + public void updateUpdateOrder() { + List<JDOrder> jdOrderList = new ArrayList<>(); + int pageSize = 200; + int page = 1; + JDOrderResult result = JDApiUtil.getOrderList(page++, pageSize, new Date(), JDApiUtil.ORDER_TYPE_UPDATETIME); + if (result != null) { + jdOrderList.addAll(result.getOrderList()); + while (result != null && result.isHasMore()) { + result = JDApiUtil.getOrderList(page++, pageSize, new Date(), JDApiUtil.ORDER_TYPE_UPDATETIME); + if (result != null) + jdOrderList.addAll(result.getOrderList()); + } + } + saveJDOrders(jdOrderList); + } - /** - * 鏇存柊涓�澶╃殑鏁版嵁 - * - * @param date - */ - public void updateDayOrder(Date date) { - Date now = new Date(); - List<JDOrder> orderList = new ArrayList<>(); - Date startTime = new Date( - TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(date.getTime(), "yyyy-MM-dd"), "yyyy-MM-dd")); - // 涓�涓皬鏃朵负涓�涓闀� - for (int i = 0; i < 24; i++) { - Date da = new Date(startTime.getTime() + 1000 * 60 * 60L * i); - if (da.getTime() > now.getTime()) - break; - List<JDOrder> tempOrderList = getHourOrder(da); - if (tempOrderList != null && tempOrderList.size() > 0) - orderList.addAll(tempOrderList); - } - saveJDOrders(orderList); - } + /** + * 鏇存柊涓�涓皬鏃剁殑璁㈠崟 + * + * @param date + */ + private List<JDOrder> getHourOrder(Date date) { + List<JDOrder> jdOrderList = new ArrayList<>(); + int pageSize = 200; + int page = 1; + JDOrderResult result = JDApiUtil.getOrderList(page++, pageSize, date, JDApiUtil.ORDER_TYPE_UPDATETIME); + if (result != null) { + jdOrderList.addAll(result.getOrderList()); + while (result != null && result.isHasMore()) { + result = JDApiUtil.getOrderList(page++, pageSize, date, JDApiUtil.ORDER_TYPE_UPDATETIME); + if (result != null) + jdOrderList.addAll(result.getOrderList()); + } + } + return jdOrderList; + } - /** - * 鏇存柊鏈�杩戜竴澶╃殑鏁版嵁 - * - * @param date - */ - public void updateLatestDayOrder(Date date) { - Date now = new Date(); - List<JDOrder> orderList = new ArrayList<>(); - Date startTime = new Date(date.getTime() - 1000 * 60 * 60 * 24L); - // 涓�涓皬鏃朵负涓�涓闀� - for (int i = 0; i < 24; i++) { - Date da = new Date(startTime.getTime() + 1000 * 60 * 60L * i); - if (da.getTime() > now.getTime()) - break; - List<JDOrder> tempOrderList = getHourOrder(da); - if (tempOrderList != null && tempOrderList.size() > 0) - orderList.addAll(tempOrderList); - } - saveJDOrders(orderList); - } + /** + * 鏇存柊涓�澶╃殑鏁版嵁 + * + * @param date + */ + public void updateDayOrder(Date date) { + Date now = new Date(); + List<JDOrder> orderList = new ArrayList<>(); + Date startTime = new Date( + TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(date.getTime(), "yyyy-MM-dd"), "yyyy-MM-dd")); + // 涓�涓皬鏃朵负涓�涓闀� + for (int i = 0; i < 24; i++) { + Date da = new Date(startTime.getTime() + 1000 * 60 * 60L * i); + if (da.getTime() > now.getTime()) + break; + List<JDOrder> tempOrderList = getHourOrder(da); + if (tempOrderList != null && tempOrderList.size() > 0) + orderList.addAll(tempOrderList); + } + saveJDOrders(orderList); + } - /** - * 鏇存柊鏈�杩�3澶╃殑璁㈠崟锛堟瘡澶╂棭涓婂噷鏅�0鐐硅繃10鍒嗭紝鏃╀笂8鐐硅繃10鍒嗭級 - */ - public void updateLatest3DayOrder() { - Date now = new Date(); - for (int i = 1; i < 4; i++) { - updateDayOrder(new Date(now.getTime() - 1000 * 60 * 60 * 24L * i)); - } - } + /** + * 鏇存柊鏈�杩戜竴澶╃殑鏁版嵁 + * + * @param date + */ + public void updateLatestDayOrder(Date date) { + Date now = new Date(); + List<JDOrder> orderList = new ArrayList<>(); + Date startTime = new Date(date.getTime() - 1000 * 60 * 60 * 24L); + // 涓�涓皬鏃朵负涓�涓闀� + for (int i = 0; i < 24; i++) { + Date da = new Date(startTime.getTime() + 1000 * 60 * 60L * i); + if (da.getTime() > now.getTime()) + break; + List<JDOrder> tempOrderList = getHourOrder(da); + if (tempOrderList != null && tempOrderList.size() > 0) + orderList.addAll(tempOrderList); + } + saveJDOrders(orderList); + } + + /** + * 鏇存柊鏈�杩�3澶╃殑璁㈠崟锛堟瘡澶╂棭涓婂噷鏅�0鐐硅繃10鍒嗭紝鏃╀笂8鐐硅繃10鍒嗭級 + */ + public void updateLatest3DayOrder() { + Date now = new Date(); + for (int i = 1; i < 4; i++) { + updateDayOrder(new Date(now.getTime() - 1000 * 60 * 60 * 24L * i)); + } + } } -- Gitblit v1.8.0