kerry před 5 roky
rodič
revize
c1e803a495

+ 0 - 44
xxl-job-admin/src/main/java/com/xxl/job/admin/config/XxlJobConfiguration.java Zobrazit soubor

@@ -1,44 +0,0 @@
1
-package com.xxl.job.admin.config;
2
-
3
-/**
4
- * @author VcKerry on 2020/1/6
5
- */
6
-
7
-//@Configuration
8
-public class XxlJobConfiguration {
9
-
10
- /*   @Bean
11
-    public JobTriggerPoolHelper jobTriggerPoolHelper() {
12
-        return new JobTriggerPoolHelper();
13
-    }
14
-
15
-
16
-    @Bean
17
-    public JobFailMonitorHelper jobFailMonitorHelper(JobTriggerPoolHelper jobTriggerPoolHelper) {
18
-        return new JobFailMonitorHelper(jobTriggerPoolHelper);
19
-    }
20
-
21
-
22
-    @Bean
23
-    public JobLogReportHelper jobLogReportHelper() {
24
-        return new JobLogReportHelper();
25
-    }
26
-
27
-    @Bean
28
-    public JobScheduleHelper jobScheduleHelper(JobTriggerPoolHelper jobTriggerPoolHelper) {
29
-        return new JobScheduleHelper(jobTriggerPoolHelper);
30
-    }
31
-*/
32
-
33
-   /* @Bean(destroyMethod = "destroy")
34
-    public XxlJobScheduler xxlJobScheduler(JobRegistryMonitorHelper jobRegistryMonitorHelper,
35
-                                           JobFailMonitorHelper jobFailMonitorHelper,
36
-                                           JobTriggerPoolHelper jobTriggerPoolHelper,
37
-                                           JobLogReportHelper jobLogReportHelper,
38
-                                           JobScheduleHelper jobScheduleHelper) throws Exception {
39
-        XxlJobScheduler xxlJobScheduler = new XxlJobScheduler(jobRegistryMonitorHelper, jobFailMonitorHelper, jobTriggerPoolHelper, jobLogReportHelper, jobScheduleHelper);
40
-        xxlJobScheduler.init();
41
-        return xxlJobScheduler;
42
-    }*/
43
-
44
-}

+ 9 - 0
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java Zobrazit soubor

@@ -135,6 +135,15 @@ public class JobLogController {
135 135
         return "joblog/joblog.detail";
136 136
     }
137 137
 
138
+    /**
139
+     * 获取日志
140
+     *
141
+     * @param executorAddress
142
+     * @param triggerTime
143
+     * @param logId
144
+     * @param fromLineNum
145
+     * @return
146
+     */
138 147
     @RequestMapping("/logDetailCat")
139 148
     @ResponseBody
140 149
     public ReturnT<LogResult> logDetailCat(String executorAddress, long triggerTime, long logId, int fromLineNum) {

+ 15 - 21
xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobScheduleHelper.java Zobrazit soubor

@@ -56,29 +56,23 @@ public class JobScheduleHelper {
56 56
     public void start() {
57 57
 
58 58
         // schedule thread
59
-        scheduleThread = new Thread(new Runnable() {
60
-            @Override
61
-            public void run() {
62
-                jobScheduleStop();
63
-            }
64
-        });
59
+        scheduleThread = new Thread(this::jobSchedule);
65 60
         scheduleThread.setDaemon(true);
66 61
         scheduleThread.setName("xxl-job, admin JobScheduleHelper#scheduleThread");
67 62
         scheduleThread.start();
68 63
 
69 64
         // ring thread
70
-        ringThread = new Thread(new Runnable() {
71
-            @Override
72
-            public void run() {
73
-                jobScheduleRing();
74
-            }
75
-        });
65
+        ringThread = new Thread(this::jobScheduleRing);
76 66
         ringThread.setDaemon(true);
77 67
         ringThread.setName("xxl-job, admin JobScheduleHelper#ringThread");
78 68
         ringThread.start();
79 69
     }
80 70
 
81
-    private void jobScheduleStop() {
71
+    /**
72
+     * 不断去数据库获取任务
73
+     */
74
+    @SuppressWarnings("AlibabaMethodTooLong")
75
+    private void jobSchedule() {
82 76
 
83 77
         try {
84 78
             TimeUnit.MILLISECONDS.sleep(5000 - System.currentTimeMillis() % 1000);
@@ -122,13 +116,15 @@ public class JobScheduleHelper {
122 116
 
123 117
                         // time-ring jump
124 118
                         if (nowTime > jobInfo.getTriggerNextTime() + PRE_READ_MS) {
119
+                            //  过期了
125 120
                             // 2.1、trigger-expire > 5s:pass && make next-trigger-time
126 121
                             logger.warn(">>>>>>>>>>> xxl-job, schedule misfire, jobId = " + jobInfo.getId());
127 122
 
128
-                            // fresh next
123
+                            // fresh next 刷新
129 124
                             refreshNextValidTime(jobInfo, new Date());
130 125
 
131 126
                         } else if (nowTime > jobInfo.getTriggerNextTime()) {
127
+                            // 可以执行
132 128
                             // 2.2、trigger-expire < 5s:direct-trigger && make next-trigger-time
133 129
 
134 130
                             // 1、trigger
@@ -151,7 +147,6 @@ public class JobScheduleHelper {
151 147
                                 refreshNextValidTime(jobInfo, new Date(jobInfo.getTriggerNextTime()));
152 148
 
153 149
                             }
154
-
155 150
                         } else {
156 151
                             // 2.3、trigger-pre-read:time-ring trigger && make next-trigger-time
157 152
 
@@ -179,7 +174,6 @@ public class JobScheduleHelper {
179 174
 
180 175
                 // tx stop
181 176
 
182
-
183 177
             } catch (Exception e) {
184 178
                 if (!scheduleThreadToStop) {
185 179
                     logger.error(">>>>>>>>>>> xxl-job, JobScheduleHelper#scheduleThread error:{}", e.getMessage());
@@ -226,7 +220,8 @@ public class JobScheduleHelper {
226 220
 
227 221
 
228 222
             // Wait seconds, align second
229
-            if (cost < 1000) {  // scan-overtime, not wait
223
+            if (cost < 1000) {
224
+                // scan-overtime, not wait
230 225
                 try {
231 226
                     // pre-read period: success > scan each second; fail > skip this period;
232 227
                     TimeUnit.MILLISECONDS.sleep((preReadSuc ? 1000 : PRE_READ_MS) - System.currentTimeMillis() % 1000);
@@ -236,9 +231,7 @@ public class JobScheduleHelper {
236 231
                     }
237 232
                 }
238 233
             }
239
-
240 234
         }
241
-
242 235
         logger.info(">>>>>>>>>>> xxl-job, JobScheduleHelper#scheduleThread stop");
243 236
     }
244 237
 
@@ -258,7 +251,8 @@ public class JobScheduleHelper {
258 251
             try {
259 252
                 // second data
260 253
                 List<Integer> ringItemData = new ArrayList<>();
261
-                int nowSecond = Calendar.getInstance().get(Calendar.SECOND);   // 避免处理耗时太长,跨过刻度,向前校验一个刻度;
254
+                // 避免处理耗时太长,跨过刻度,向前校验一个刻度;
255
+                int nowSecond = Calendar.getInstance().get(Calendar.SECOND);
262 256
                 for (int i = 0; i < 2; i++) {
263 257
                     List<Integer> tmpData = ringData.remove((nowSecond + 60 - i) % 60);
264 258
                     if (tmpData != null) {
@@ -267,7 +261,7 @@ public class JobScheduleHelper {
267 261
                 }
268 262
 
269 263
                 // ring trigger
270
-                logger.debug(">>>>>>>>>>> xxl-job, time-ring beat : " + nowSecond + " = " + Arrays.asList(ringItemData));
264
+                logger.debug(">>>>>>>>>>> xxl-job, time-ring beat : {} = {}", nowSecond, ringItemData);
271 265
                 if (ringItemData.size() > 0) {
272 266
                     // do trigger
273 267
                     for (int jobId : ringItemData) {

+ 2 - 1
xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobTriggerPoolHelper.java Zobrazit soubor

@@ -95,7 +95,8 @@ public class JobTriggerPoolHelper {
95 95
         // choose thread pool
96 96
         ThreadPoolExecutor triggerPool_ = fastTriggerPool;
97 97
         AtomicInteger jobTimeoutCount = jobTimeoutCountMap.get(jobId);
98
-        if (jobTimeoutCount != null && jobTimeoutCount.get() > 10) {      // job-timeout 10 times in 1 min
98
+        // job-timeout 10 times in 1 min
99
+        if (jobTimeoutCount != null && jobTimeoutCount.get() > 10) {
99 100
             triggerPool_ = slowTriggerPool;
100 101
         }
101 102
 

+ 1 - 0
xxl-job-admin/src/main/java/com/xxl/job/admin/core/trigger/XxlJobTrigger.java Zobrazit soubor

@@ -211,6 +211,7 @@ public class XxlJobTrigger {
211 211
         ReturnT<String> runResult = null;
212 212
         try {
213 213
             ExecutorBiz executorBiz = xxlJobScheduler.getExecutorBiz(address);
214
+            // 远程执行
214 215
             runResult = executorBiz.run(triggerParam);
215 216
         } catch (Exception e) {
216 217
             logger.error(">>>>>>>>>>> xxl-job trigger error, please check if the executor[{}] is running.", address, e);

+ 2 - 2
xxl-job-admin/src/main/resources/application.properties Zobrazit soubor

@@ -6,8 +6,8 @@ spring.datasource.url=jdbc:mysql://192.168.10.210:6446/xxl_job?Unicode=true&useS
6 6
 spring.datasource.username=xxl_job
7 7
 spring.datasource.password=E_wsq@163.com
8 8
 spring.datasource.hikari.connection-test-query=SELECT 1
9
-spring.datasource.hikari.maximum-pool-size=20
10
-spring.datasource.hikari.minimum-idle=10
9
+spring.datasource.hikari.maximum-pool-size=30
10
+spring.datasource.hikari.minimum-idle=20
11 11
 ### actuator
12 12
 management.server.servlet.context-path=/actuator
13 13
 management.health.mail.enabled=false

+ 3 - 0
xxl-job-core/src/main/java/com/xxl/job/core/biz/impl/ExecutorBizImpl.java Zobrazit soubor

@@ -77,6 +77,9 @@ public class ExecutorBizImpl implements ExecutorBiz {
77 77
         GlueTypeEnum glueTypeEnum = GlueTypeEnum.match(triggerParam.getGlueType());
78 78
         if (GlueTypeEnum.BEAN == glueTypeEnum) {
79 79
 
80
+            // bean 模式
81
+
82
+            // rec
80 83
             // new jobhandler
81 84
             IJobHandler newJobHandler = XxlJobExecutor.loadJobHandler(triggerParam.getExecutorHandler());
82 85
 

+ 4 - 0
xxl-job-core/src/main/java/com/xxl/job/core/thread/JobThread.java Zobrazit soubor

@@ -93,6 +93,9 @@ public class JobThread extends Thread {
93 93
         return running || triggerQueue.size() > 0;
94 94
     }
95 95
 
96
+    /**
97
+     * 取出来
98
+     */
96 99
     @Override
97 100
     public void run() {
98 101
 
@@ -121,6 +124,7 @@ public class JobThread extends Thread {
121 124
                     // log filename, like "logPath/yyyy-MM-dd/9999.log"
122 125
                     String logFileName = XxlJobFileAppender.makeLogFileName(new Date(triggerParam.getLogDateTime()), triggerParam.getLogId());
123 126
                     XxlJobFileAppender.contextHolder.set(logFileName);
127
+
124 128
                     ShardingUtil.setShardingVo(new ShardingUtil.ShardingVO(triggerParam.getBroadcastIndex(), triggerParam.getBroadcastTotal()));
125 129
 
126 130
                     // execute

+ 1 - 1
xxl-job-executor-samples/xxl-job-executor-sample-frameless/src/main/resources/xxl-job-executor.properties Zobrazit soubor

@@ -1,6 +1,6 @@
1 1
 ### xxl-job admin address list, such as "http://address" or "http://address01,http://address02"
2 2
 
3
-xxl.job.admin.addresses=http://192.168.10.177:8091/xxl-job-admin,http://192.168.10.177:8090/xxl-job-admin
3
+xxl.job.admin.addresses=http://192.168.10.172:8080/xxl-job-admin
4 4
 
5 5
 ### xxl-job executor address
6 6
 xxl.job.executor.appname=xxl-job-executor-sample