我需要一个每天晚上在tomcat服务器上运行的java例程。有关如何做到这一点的任何想法? 我尝试在mysql中执行类似事件/日程安排的事情
答案 0 :(得分:0)
纯java解决方案是使用Quartz。如果不需要纯java,我建议使用简单的ec2:Encrypted
作业。
答案 1 :(得分:0)
问这个问题已经有一段时间了,但是最近我遇到了类似的问题,想分享我的解决方案。
我所做的只是创建一个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