线程异常打印方法移入工具类

master
RuoYi 6 years ago committed by Limy
parent 7953211fc5
commit b7c28b8be9

@ -1,17 +1,13 @@
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;
import com.ruoyi.common.utils.Threads;
/**
* 线
@ -21,8 +17,6 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
@Configuration
public class ThreadPoolConfig
{
private static final Logger log = LoggerFactory.getLogger(ThreadPoolConfig.class);
// 核心线程池大小
private int corePoolSize = 50;
@ -61,39 +55,8 @@ public class ThreadPoolConfig
protected void afterExecute(Runnable r, Throwable t)
{
super.afterExecute(r, t);
printException(r, t);
Threads.printException(r, t);
}
};
}
private static void printException(Runnable r, Throwable t)
{
if (t == null && r instanceof Future<?>)
{
try
{
Future<?> future = (Future<?>) r;
if (future.isDone())
{
future.get();
}
}
catch (CancellationException ce)
{
t = ce;
}
catch (ExecutionException ee)
{
t = ee.getCause();
}
catch (InterruptedException ie)
{
Thread.currentThread().interrupt();
}
}
if (t != null)
{
log.error(t.getMessage(), t);
}
}
}

@ -1,6 +1,9 @@
package com.ruoyi.common.utils;
import java.util.concurrent.CancellationException;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -12,7 +15,7 @@ import org.slf4j.LoggerFactory;
*/
public class Threads
{
private static final Logger logger = LoggerFactory.getLogger("sys-user");
private static final Logger logger = LoggerFactory.getLogger(Threads.class);
/**
* sleep,
@ -59,4 +62,38 @@ public class Threads
}
}
}
/**
* 线
*/
public static void printException(Runnable r, Throwable t)
{
if (t == null && r instanceof Future<?>)
{
try
{
Future<?> future = (Future<?>) r;
if (future.isDone())
{
future.get();
}
}
catch (CancellationException ce)
{
t = ce;
}
catch (ExecutionException ee)
{
t = ee.getCause();
}
catch (InterruptedException ie)
{
Thread.currentThread().interrupt();
}
}
if (t != null)
{
logger.error(t.getMessage(), t);
}
}
}

Loading…
Cancel
Save