效果有些任务需要在系统启动的时候自动启动,比如调度定时任务,在服务器关闭以后,内存中的定时任务也结束了,所以需要在系统再次启动后,重新启动定时任务,加载到内存中。于是可以继承commandLineRunner接口,实现里面的run方法,
代码
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
@Component
public class ApplicationListener implements CommandLineRunner, DisposableBean {
private final Logger logger = LoggerFactory.getLogger(ApplicationListener.class);
@Autowired
private JtWebDocumentExportService documentExportService;
@Override
public void destroy() throws Exception {
//此为在系统关闭时需要做的处理。一般不处理
//logger.info("关闭应用,将正在导出的文档设为失败");
//documentExportService.stopExportingDocument();
}
@Override
public void run(String... args) throws Exception {
//以下为具体的需要重启的业务
try {
logger.info("恢复正在导出的文档");
documentExportService.recoverExportingDocument();
}catch (Exception e){
logger.error("恢复正在导出的文档失败,msg:{}", e.getMessage());
e.printStackTrace();
}
}
}