AE86 5 gadi atpakaļ
vecāks
revīzija
52249ea335

+ 0 - 45
dbsyncer-common/src/main/java/org/dbsyncer/common/DefaultThreadFactory.java

@@ -1,45 +0,0 @@
-package org.dbsyncer.common;
-
-import org.apache.commons.lang.StringUtils;
-
-import java.util.concurrent.ThreadFactory;
-import java.util.concurrent.atomic.AtomicInteger;
-
-public class DefaultThreadFactory implements ThreadFactory {
-
-    /**
-     *原子操作保证每个线程都有唯一的
-     */
-    private static final AtomicInteger threadNumber = new AtomicInteger(1);
-
-    private final AtomicInteger mThreadNum = new AtomicInteger(1);
-
-    private final String prefix;
-
-    private final boolean daemoThread;
-
-    private final ThreadGroup threadGroup;
-
-    public DefaultThreadFactory() {
-        this("listener-threadpool-" + threadNumber.getAndIncrement(), false);
-    }
-
-    public DefaultThreadFactory(String prefix) {
-        this(prefix, false);
-    }
-
-    public DefaultThreadFactory(String prefix, boolean daemo) {
-        this.prefix = StringUtils.isNotEmpty(prefix) ? prefix.concat("-thread-") : "";
-        daemoThread = daemo;
-        SecurityManager s = System.getSecurityManager();
-        threadGroup = (s == null) ? Thread.currentThread().getThreadGroup() : s.getThreadGroup();
-    }
-
-    @Override
-    public Thread newThread(Runnable runnable) {
-        String name = prefix + mThreadNum.getAndIncrement();
-        Thread ret = new Thread(threadGroup, runnable, name, 0);
-        ret.setDaemon(daemoThread);
-        return ret;
-    }
-}

+ 2 - 2
dbsyncer-parser/src/main/java/org/dbsyncer/parser/ParserFactory.java

@@ -343,8 +343,8 @@ public class ParserFactory implements Parser {
     private ThreadPoolTaskExecutor getThreadPoolTaskExecutor(int threadSize) {
         ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
         executor.setCorePoolSize(threadSize);
-        executor.setMaxPoolSize(threadSize * 2);
-        executor.setQueueCapacity(50);
+        executor.setMaxPoolSize(threadSize);
+        executor.setQueueCapacity(threadSize * 2);
         executor.setKeepAliveSeconds(30);
         executor.setAwaitTerminationSeconds(30);
         executor.setThreadNamePrefix("ParserExecutor");

+ 4 - 3
dbsyncer-web/src/main/java/org/dbsyncer/web/config/TaskPoolConfig.java

@@ -24,9 +24,9 @@ public class TaskPoolConfig {
         executor.setCorePoolSize(10);
         //最大线程数20:线程池最大的线程数,只有在缓冲队列满了之后才会申请超过核心线程数的线程
         //maxPoolSize 当系统负载大道最大值时,核心线程数已无法按时处理完所有任务,这是就需要增加线程.每秒200个任务需要20个线程,那么当每秒1000个任务时,则需要(1000-queueCapacity)*(20/200),即60个线程,可将maxPoolSize设置为60;
-        executor.setMaxPoolSize(30);
-        //缓冲队列200:用来缓冲执行任务的队列
-        executor.setQueueCapacity(400);
+        executor.setMaxPoolSize(20);
+        //缓冲队列100:用来缓冲执行任务的队列
+        executor.setQueueCapacity(100);
         //允许线程的空闲时间60秒:当超过了核心线程出之外的线程在空闲时间到达之后会被销毁
         executor.setKeepAliveSeconds(60);
         //线程池名的前缀:设置好了之后可以方便我们定位处理任务所在的线程池
@@ -43,6 +43,7 @@ public class TaskPoolConfig {
         executor.setRejectedExecutionHandler(new ThreadPoolExecutor.DiscardPolicy());
         executor.setWaitForTasksToCompleteOnShutdown(true);
         executor.setAwaitTerminationSeconds(60);
+        executor.initialize();
         return executor;
     }