Kaynağa Gözat

Merge branch 'feature/定时代理执行放到线程池中运行,减少线程创建的内存开销' into 'wrdp'

[服务管理]定时代理执行放到线程池中运行,减少线程创建的内存开销

See merge request o2oa/o2oa!3031
o2null 4 yıl önce
ebeveyn
işleme
7cdcf815ae

+ 7 - 3
o2server/x_program_center/src/main/java/com/x/program/center/schedule/TriggerAgent.java

@@ -5,6 +5,8 @@ import java.util.Date;
 import java.util.List;
 import java.util.Optional;
 import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
 import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
@@ -46,6 +48,8 @@ public class TriggerAgent extends BaseAction {
 
 	private static final CopyOnWriteArrayList<String> LOCK = new CopyOnWriteArrayList<>();
 
+	private static final ExecutorService executorService = Executors.newWorkStealingPool();
+
 	@Override
 	public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
 		try {
@@ -89,7 +93,7 @@ public class TriggerAgent extends BaseAction {
 							pair.getName(), pair.getCron(),
 							(pair.getLastStartTime() == null ? "" : DateTools.format(pair.getLastStartTime())));
 					ExecuteThread thread = new ExecuteThread(agent);
-					thread.start();
+					executorService.execute(thread);
 				}
 
 			}
@@ -170,7 +174,7 @@ public class TriggerAgent extends BaseAction {
 
 	}
 
-	public class ExecuteThread extends Thread {
+	public class ExecuteThread implements Runnable {
 
 		private Agent agent;
 
@@ -243,4 +247,4 @@ public class TriggerAgent extends BaseAction {
 
 	}
 
-}
+}