|
|
|
@ -1,9 +1,14 @@
|
|
|
|
|
package com.ruoyi.common.config.thread; |
|
|
|
|
|
|
|
|
|
import java.util.concurrent.CancellationException; |
|
|
|
|
import java.util.concurrent.ExecutionException; |
|
|
|
|
import java.util.concurrent.Future; |
|
|
|
|
import java.util.concurrent.ScheduledExecutorService; |
|
|
|
|
import java.util.concurrent.ScheduledThreadPoolExecutor; |
|
|
|
|
import java.util.concurrent.ThreadPoolExecutor; |
|
|
|
|
import org.apache.commons.lang3.concurrent.BasicThreadFactory; |
|
|
|
|
import org.slf4j.Logger; |
|
|
|
|
import org.slf4j.LoggerFactory; |
|
|
|
|
import org.springframework.context.annotation.Bean; |
|
|
|
|
import org.springframework.context.annotation.Configuration; |
|
|
|
|
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; |
|
|
|
@ -16,6 +21,8 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
|
|
|
|
@Configuration |
|
|
|
|
public class ThreadPoolConfig |
|
|
|
|
{ |
|
|
|
|
private static final Logger log = LoggerFactory.getLogger(ThreadPoolConfig.class); |
|
|
|
|
|
|
|
|
|
// 核心线程池大小
|
|
|
|
|
private int corePoolSize = 50; |
|
|
|
|
|
|
|
|
@ -48,6 +55,25 @@ public class ThreadPoolConfig
|
|
|
|
|
protected ScheduledExecutorService scheduledExecutorService() |
|
|
|
|
{ |
|
|
|
|
return new ScheduledThreadPoolExecutor(corePoolSize, |
|
|
|
|
new BasicThreadFactory.Builder().namingPattern("schedule-pool-%d").daemon(true).build()); |
|
|
|
|
new BasicThreadFactory.Builder().namingPattern("schedule-pool-%d").daemon(true).build()) { |
|
|
|
|
@Override |
|
|
|
|
protected void afterExecute(Runnable r, Throwable t) { |
|
|
|
|
super.afterExecute(r, t); |
|
|
|
|
if (t == null && r instanceof Future<?>) { |
|
|
|
|
try { |
|
|
|
|
Object result = ((Future<?>) r).get(); |
|
|
|
|
} catch (CancellationException ce) { |
|
|
|
|
t = ce; |
|
|
|
|
} catch (ExecutionException ee) { |
|
|
|
|
t = ee.getCause(); |
|
|
|
|
} catch (InterruptedException ie) { |
|
|
|
|
Thread.currentThread().interrupt(); // ignore/reset
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if(t != null) { |
|
|
|
|
log.error(t.getMessage()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|