我需要一个每晚在 tomcat 服务器上运行的 java 例程。关于如何做到这一点的任何想法? 我尝试在 mysql 中做类似事件/计划的事情
最佳答案
问这个问题已经有一段时间了,但最近我遇到了类似的问题,想分享我的解决方案。
我所做的只是创建一个 ServletContextListener,它创建一个 ScheduledExecutorService
:
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
@WebListener
public class BackgroundJobManager implements ServletContextListener {
private ScheduledExecutorService scheduler;
@Override
public void contextInitialized(ServletContextEvent event) {
this.scheduler = Executors.newSingleThreadScheduledExecutor();
this.scheduler.scheduleAtFixedRate(new JobClass(), 1, 1, TimeUnit.DAYS);
}
@Override
public void contextDestroyed(ServletContextEvent event) {
scheduler.shutdownNow();
}
}
这段代码每天执行一次JobClass
。
JobClass
必须实现 java.lang.Runnable
关于java - Tomcat 服务器上的周期性任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47040095/