package com.dl.framework.manager;
|
|
import com.dl.common.utils.Threads;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.stereotype.Component;
|
|
import javax.annotation.PreDestroy;
|
import java.util.concurrent.ScheduledExecutorService;
|
|
/**
|
* 确保应用退出时能关闭后台线程
|
*
|
* @author Lion Li
|
*/
|
@Slf4j
|
@Component
|
public class ShutdownManager {
|
|
@Autowired
|
@Qualifier("scheduledExecutorService")
|
private ScheduledExecutorService scheduledExecutorService;
|
|
@PreDestroy
|
public void destroy() {
|
shutdownAsyncManager();
|
}
|
|
/**
|
* 停止异步执行任务
|
*/
|
private void shutdownAsyncManager() {
|
try {
|
log.info("====关闭后台任务任务线程池====");
|
Threads.shutdownAndAwaitTermination(scheduledExecutorService);
|
} catch (Exception e) {
|
log.error(e.getMessage(), e);
|
}
|
}
|
}
|