Java Tomcat服务器上的定期任务

Java Tomcat服务器上的定期任务,java,mysql,tomcat,Java,Mysql,Tomcat,我需要一个每晚在tomcat服务器上运行的java例程。有什么办法可以做到这一点吗? 我尝试在mysql中做一些类似事件/日程安排的事情可以使用纯java解决方案。如果不需要纯java,我建议使用一个简单的cron作业。这个问题提出已经有一段时间了,但最近我遇到了一个类似的问题,希望与大家分享我的解决方案 我所做的只是创建一个ServletContextListener,它创建一个ScheduledExecutorService: 此代码每天执行一次JobClass。 JobClass必须实现j

我需要一个每晚在tomcat服务器上运行的java例程。有什么办法可以做到这一点吗?
我尝试在mysql中做一些类似事件/日程安排的事情

可以使用纯java解决方案。如果不需要纯java,我建议使用一个简单的cron作业。

这个问题提出已经有一段时间了,但最近我遇到了一个类似的问题,希望与大家分享我的解决方案

我所做的只是创建一个ServletContextListener,它创建一个ScheduledExecutorService:

此代码每天执行一次JobClass。
JobClass必须实现java.lang.Runnable

您可能想看看它是否更像一个脚本或其他东西,您可以使用linux cron作业我假设您在linux上,Windows也有一个等效的任务您需要在Tomcat中运行该任务吗,或者只是在托管它的机器上?我需要我的应用程序每天晚上将注册的日期与当前日期进行比较,如果它们与执行另一个常规日期一致,那么请求家庭作业帮助的问题必须包括到目前为止您为解决问题所做的工作的摘要,以及您在解决问题时遇到的困难的描述。
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();
    }
}