瀏覽代碼

Merge remote-tracking branch 'origin/master'

xuzuoyun 5 年之前
父節點
當前提交
228888b346

+ 41 - 34
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/job/BytedanceDailyMaterialReportRetryJob.java

@@ -33,43 +33,50 @@ public class BytedanceDailyMaterialReportRetryJob implements Job {
     @Override
     public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
         log.info("头条素材报表重试定时任务开始");
-        List<BytedanceReportMaterialRetry> retryList = bytedanceReportService.getRetryList();
-        //
-        //多线程
-        final ExecutorService executorService = Executors.newFixedThreadPool(3);
-        retryList.forEach(retry -> {
-            executorService.submit(new Runnable() {
-                @Override
-                public void run() {
-                    try {
-                        String startDate = retry.getStartDate();
-                        String endDate = retry.getEndDate();
-                        Long accountId = retry.getAccountId();
-                        Integer type = retry.getType();
-                        CtopOauthToken token = tokenService.getOauthTokenByAccountId(String.valueOf(accountId));
-                        log.info("头条素材报表重试定时任务,当前accountId为:" + token.getAccountId());
+        Thread thread = new Thread() {
+            @Override
+            public void run() {
 
-                        Long days = DateUtils.getDiscrepantDays(startDate, endDate); //间隔天数
-                        String start = null;
-                        String end = null;
-                        for (int i = 0; i <= days; i++) {
-                            start = DateUtils.addDay(startDate, i);
-                            end = start;
-                            //获取头条素材报表数据
-                            int code = bytedanceReportService.bytedanceMaterialReportRetry(type, token, start, end);
-                            if(code ==200 || code == 1){
-                                if(type == 1){
-                                    //重试成功清洗数据
-                                    byteDanceVideoReportDailyService.videoInfoListByAccountId(start,end,accountId);
+                List<BytedanceReportMaterialRetry> retryList = bytedanceReportService.getRetryList();
+                //
+                //多线程
+                final ExecutorService executorService = Executors.newFixedThreadPool(3);
+                retryList.forEach(retry -> {
+                    executorService.submit(new Runnable() {
+                        @Override
+                        public void run() {
+                            try {
+                                String startDate = retry.getStartDate();
+                                String endDate = retry.getEndDate();
+                                Long accountId = retry.getAccountId();
+                                Integer type = retry.getType();
+                                CtopOauthToken token = tokenService.getOauthTokenByAccountId(String.valueOf(accountId));
+                                log.info("头条素材报表重试定时任务,当前accountId为:" + token.getAccountId());
+                                Long days = DateUtils.getDiscrepantDays(startDate, endDate); //间隔天数
+                                String start = null;
+                                String end = null;
+                                for (int i = 0; i <= days; i++) {
+                                    start = DateUtils.addDay(startDate, i);
+                                    end = start;
+                                    //获取头条素材报表数据
+                                    int code = bytedanceReportService.bytedanceMaterialReportRetry(type, token, start, end);
+                                    if (code == 200 || code == 1) {
+                                        if (type == 1) {
+                                            //重试成功清洗数据
+                                            byteDanceVideoReportDailyService.videoInfoListByAccountId(start, end, accountId);
+                                        }
+                                    }
                                 }
+                            } catch (Exception e) {
+                                e.printStackTrace();
+                            } finally {
                             }
                         }
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                    } finally {
-                    }
-                }
-            });
-        });
+                    });
+                });
+            }
+        };
+        thread.start();
+
     }
 }

+ 3 - 2
jeecg-boot-module-system/src/main/resources/quartz.properties

@@ -1,6 +1,7 @@
 org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool
-org.quartz.threadPool.threadCount=20
+org.quartz.threadPool.threadCount=50
+org.quartz.scheduler.batchTriggerAcquisitionMaxCount=50
 org.quartz.threadPool.threadPriority=5
 org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread=true
 org.quartz.jobStore.misfireThreshold=60000
-org.quartz.jobStore.class=org.quartz.simpl.RAMJobStore
+org.quartz.jobStore.class=org.quartz.simpl.RAMJobStore

+ 12 - 4
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/controller/KuaiShouYiCheReportController.java

@@ -117,7 +117,9 @@ public class KuaiShouYiCheReportController {
             android.add(androidJson.getString("agent"));
             android.add(androidJson.getString("media"));
             android.add(androidJson.getString("systemType"));
-            android.add(androidJson.getString("statDate").replace("-","/"));
+            if (!Check.isNull(androidJson.getString("statDate"))) {
+                android.add(androidJson.getString("statDate").replace("-", "/"));
+            }
             android.add(androidJson.getBigDecimal("charge"));
             android.add(androidJson.getBigDecimal("cashCost"));
             android.add(androidJson.getLong("photoShow"));
@@ -151,7 +153,9 @@ public class KuaiShouYiCheReportController {
             ios.add(iosJson.getString("agent"));
             ios.add(iosJson.getString("media"));
             ios.add(iosJson.getString("systemType"));
-            ios.add(iosJson.getString("statDate").replace("-","/"));
+            if (!Check.isNull(iosJson.getString("statDate"))) {
+                ios.add(iosJson.getString("statDate").replace("-", "/"));
+            }
             ios.add(iosJson.getBigDecimal("charge"));
             ios.add(iosJson.getBigDecimal("cashCost"));
             ios.add(iosJson.getLong("photoShow"));
@@ -183,7 +187,9 @@ public class KuaiShouYiCheReportController {
             directApplication.add(directApplicationJson.getString("agent"));
             directApplication.add(directApplicationJson.getString("media"));
             directApplication.add(directApplicationJson.getString("systemType"));
-            directApplication.add(directApplicationJson.getString("statDate").replace("-","/"));
+            if (!Check.isNull(directApplicationJson.getString("statDate"))) {
+                directApplication.add(directApplicationJson.getString("statDate").replace("-", "/"));
+            }
             directApplication.add(directApplicationJson.getBigDecimal("charge"));
             directApplication.add(directApplicationJson.getBigDecimal("cashCost"));
             directApplication.add(directApplicationJson.getLong("photoShow"));
@@ -216,7 +222,9 @@ public class KuaiShouYiCheReportController {
                 List<Object> channelSubcontracting = new ArrayList();
                 channelSubcontracting.add(channelSubcontractingJson.getString("agent"));
                 channelSubcontracting.add(channelSubcontractingJson.getString("systemType"));
-                channelSubcontracting.add(channelSubcontractingJson.getString("statDate").replace("-","/"));
+                if (!Check.isNull(channelSubcontractingJson.getString("statDate"))) {
+                    channelSubcontracting.add(channelSubcontractingJson.getString("statDate").replace("-", "/"));
+                }
                 channelSubcontracting.add(channelSubcontractingJson.getString("campaignName"));
                 channelSubcontracting.add(channelSubcontractingJson.getBigDecimal("charge"));
                 channelSubcontracting.add(channelSubcontractingJson.getBigDecimal("cashCost"));