Java调度服务

Java调度服务,java,jakarta-ee,scheduled-tasks,Java,Jakarta Ee,Scheduled Tasks,我需要做一个服务来调度基本上是获取命中某个servlet的请求的作业。我试图在本文的基础上使用servlet上下文侦听器来实现这一点,但是定义的web.xml更改在Tomcat服务器上导致了404个错误。有人对如何实现这一点有其他建议吗 现在我的一个想法是定义一个可运行的servlet public class Service extends HttpServlet implements Runnable { //Does stuff init() {

我需要做一个服务来调度基本上是获取命中某个servlet的请求的作业。我试图在本文的基础上使用servlet上下文侦听器来实现这一点,但是定义的web.xml更改在Tomcat服务器上导致了404个错误。有人对如何实现这一点有其他建议吗

现在我的一个想法是定义一个可运行的servlet

public class Service extends HttpServlet implements Runnable    {
     //Does stuff
     init()  {
         new Thread(this);
     }
}

这是一种合理的方法吗?

您可以研究在作业中使用quartz scheduler:

http://quartz-scheduler.org/
例如(不特定于您的任务):

另一种选择(快速循环)是根据您的操作系统使用cron作业或windows任务管理器

import java.util.Map;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class SchedulerJob implements Job
{
  public void execute(JobExecutionContext context)
  throws JobExecutionException {

    Map dataMap = context.getJobDetail().getJobDataMap();
    SchedulerTask task = (SchedulerTask)dataMap.get("schedulerTask");
    task.printSchedulerMessage();
  }
}