|
@@ -1,5 +1,6 @@
|
|
|
package com.xxl.job.admin.core.thread;
|
|
|
|
|
|
+import com.xxl.job.admin.core.conf.XxlJobAdminConfig;
|
|
|
import com.xxl.job.admin.core.trigger.TriggerTypeEnum;
|
|
|
import com.xxl.job.admin.core.trigger.XxlJobTrigger;
|
|
|
import org.slf4j.Logger;
|
|
@@ -20,31 +21,44 @@ public class JobTriggerPoolHelper {
|
|
|
// ---------------------- trigger pool ----------------------
|
|
|
|
|
|
// fast/slow thread pool
|
|
|
- private ThreadPoolExecutor fastTriggerPool = new ThreadPoolExecutor(
|
|
|
- 50,
|
|
|
- 200,
|
|
|
- 60L,
|
|
|
- TimeUnit.SECONDS,
|
|
|
- new LinkedBlockingQueue<Runnable>(1000),
|
|
|
- new ThreadFactory() {
|
|
|
- @Override
|
|
|
- public Thread newThread(Runnable r) {
|
|
|
- return new Thread(r, "xxl-job, admin JobTriggerPoolHelper-fastTriggerPool-" + r.hashCode());
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- private ThreadPoolExecutor slowTriggerPool = new ThreadPoolExecutor(
|
|
|
- 10,
|
|
|
- 100,
|
|
|
- 60L,
|
|
|
- TimeUnit.SECONDS,
|
|
|
- new LinkedBlockingQueue<Runnable>(2000),
|
|
|
- new ThreadFactory() {
|
|
|
- @Override
|
|
|
- public Thread newThread(Runnable r) {
|
|
|
- return new Thread(r, "xxl-job, admin JobTriggerPoolHelper-slowTriggerPool-" + r.hashCode());
|
|
|
- }
|
|
|
- });
|
|
|
+ private ThreadPoolExecutor fastTriggerPool = null;
|
|
|
+ private ThreadPoolExecutor slowTriggerPool = null;
|
|
|
+
|
|
|
+ public void start(){
|
|
|
+ fastTriggerPool = new ThreadPoolExecutor(
|
|
|
+ 10,
|
|
|
+ XxlJobAdminConfig.getAdminConfig().getTriggerPoolFastMax(),
|
|
|
+ 60L,
|
|
|
+ TimeUnit.SECONDS,
|
|
|
+ new LinkedBlockingQueue<Runnable>(1000),
|
|
|
+ new ThreadFactory() {
|
|
|
+ @Override
|
|
|
+ public Thread newThread(Runnable r) {
|
|
|
+ return new Thread(r, "xxl-job, admin JobTriggerPoolHelper-fastTriggerPool-" + r.hashCode());
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ slowTriggerPool = new ThreadPoolExecutor(
|
|
|
+ 10,
|
|
|
+ XxlJobAdminConfig.getAdminConfig().getTriggerPoolSlowMax(),
|
|
|
+ 60L,
|
|
|
+ TimeUnit.SECONDS,
|
|
|
+ new LinkedBlockingQueue<Runnable>(2000),
|
|
|
+ new ThreadFactory() {
|
|
|
+ @Override
|
|
|
+ public Thread newThread(Runnable r) {
|
|
|
+ return new Thread(r, "xxl-job, admin JobTriggerPoolHelper-slowTriggerPool-" + r.hashCode());
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public void stop() {
|
|
|
+ //triggerPool.shutdown();
|
|
|
+ fastTriggerPool.shutdownNow();
|
|
|
+ slowTriggerPool.shutdownNow();
|
|
|
+ logger.info(">>>>>>>>> xxl-job trigger thread pool shutdown success.");
|
|
|
+ }
|
|
|
|
|
|
|
|
|
// job timeout count
|
|
@@ -100,17 +114,19 @@ public class JobTriggerPoolHelper {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- public void stop() {
|
|
|
- //triggerPool.shutdown();
|
|
|
- fastTriggerPool.shutdownNow();
|
|
|
- slowTriggerPool.shutdownNow();
|
|
|
- logger.info(">>>>>>>>> xxl-job trigger thread pool shutdown success.");
|
|
|
- }
|
|
|
+
|
|
|
|
|
|
// ---------------------- helper ----------------------
|
|
|
|
|
|
private static JobTriggerPoolHelper helper = new JobTriggerPoolHelper();
|
|
|
|
|
|
+ public static void toStart() {
|
|
|
+ helper.start();
|
|
|
+ }
|
|
|
+ public static void toStop() {
|
|
|
+ helper.stop();
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* @param jobId
|
|
|
* @param triggerType
|
|
@@ -126,8 +142,4 @@ public class JobTriggerPoolHelper {
|
|
|
helper.addTrigger(jobId, triggerType, failRetryCount, executorShardingParam, executorParam);
|
|
|
}
|
|
|
|
|
|
- public static void toStop() {
|
|
|
- helper.stop();
|
|
|
- }
|
|
|
-
|
|
|
}
|