ソースを参照

重构刷新token任务

syh 5 年 前
コミット
9fae56cef7

+ 1 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/service/IRefreshTokenService.java

@@ -1,4 +1,4 @@
-package org.jeecg.modules.ctop.service;
+package cn.com.ctop.common.module.service;
 
 public interface IRefreshTokenService {
     void getRefresh();

+ 2 - 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/service/impl/RefreshTokenServiceImpl.java

@@ -1,12 +1,12 @@
-package org.jeecg.modules.ctop.service.impl;
+package cn.com.ctop.common.module.service.impl;
 
 import cn.com.ctop.common.module.entity.CtopOauthToken;
 import cn.com.ctop.common.module.mapper.CtopOauthTokenMapper;
 import cn.com.ctop.common.module.service.ICtopOauthTokenService;
+import cn.com.ctop.common.module.service.IRefreshTokenService;
 import cn.com.ctop.common.module.utils.Check;
 import cn.com.ctop.common.module.utils.CtopAdConstant;
 import lombok.extern.slf4j.Slf4j;
-import org.jeecg.modules.ctop.service.IRefreshTokenService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 

+ 18 - 3
xxl-job-executor/src/main/java/com/xxl/job/executor/handler/bytedance/BytedanceAdvertiserDailyReportLoadJob.java

@@ -6,6 +6,7 @@ import cn.com.ctop.common.module.utils.CtopAdConstant;
 import cn.com.ctop.toutiao.modules.report.service.IReportService;
 import com.xxl.job.core.biz.model.ReturnT;
 import com.xxl.job.core.handler.annotation.XxlJob;
+import com.xxl.job.core.log.XxlJobLogger;
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.common.util.DateUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -13,6 +14,7 @@ import org.springframework.stereotype.Component;
 
 import java.util.Date;
 import java.util.List;
+import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
@@ -33,16 +35,29 @@ public class BytedanceAdvertiserDailyReportLoadJob {
 
     @XxlJob("bytedanceAdvertiserDailyReport")
     public ReturnT<String> execute(String params) throws Exception {
-        log.info("头条广告主日报获取任务执行开始");
+        XxlJobLogger.log("头条广告主日报获取任务执行开始");
         Date getDate = DateUtils.addDay(new Date(), -1);
         //1:查询当日数据
         List<CtopOauthToken> tokens = tokenService.getTokenListByType(CtopAdConstant.PLATFORM_TYPE_BYTEDANCE);
         if (null == tokens || tokens.isEmpty()) {
-            log.info("定时获取头条数据异常:为获取到可用的token");
+            XxlJobLogger.log("定时获取头条数据异常:为获取到可用的token");
             return ReturnT.FAIL;
         }
         executorService = Executors.newFixedThreadPool(5);
-        tokens.forEach(token -> executorService.submit(() -> reportService.getAdvertiserReport(token, getDate, getDate, CtopAdConstant.BYTEDANCE_REPORT_TYPE_DAILY)));
+        CountDownLatch countDownLatch = new CountDownLatch(tokens.size());
+        tokens.forEach(token -> {
+            executorService.submit(() -> {
+                try {
+                    reportService.getAdvertiserReport(token, getDate, getDate, CtopAdConstant.BYTEDANCE_REPORT_TYPE_DAILY);
+                } catch (Exception e) {
+                    XxlJobLogger.log(e);
+                } finally {
+                    countDownLatch.countDown();
+                }
+            });
+        });
+        countDownLatch.await();
+        XxlJobLogger.log("头条广告主日报获取任务执行开始");
         return ReturnT.SUCCESS;
     }
 

+ 27 - 0
xxl-job-executor/src/main/java/com/xxl/job/executor/handler/token/RefreshTokenJob.java

@@ -0,0 +1,27 @@
+package com.xxl.job.executor.handler.token;
+
+import cn.com.ctop.common.module.service.IRefreshTokenService;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import com.xxl.job.core.log.XxlJobLogger;
+import org.quartz.JobExecutionException;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class RefreshTokenJob {
+    @Autowired
+    private IRefreshTokenService refreshTokenService;
+
+    /**
+     * 刷新token
+     *
+     * @param param
+     * @throws JobExecutionException
+     */
+    @XxlJob("refreshToken")
+    public ReturnT<String> execute(String param) {
+        XxlJobLogger.log("token刷新任务开始");
+        refreshTokenService.getRefresh();
+        XxlJobLogger.log("token刷新任务结束");
+        return ReturnT.SUCCESS;
+    }
+}