【问题标题】:Java scheduling serviceJava调度服务
【发布时间】:2012-07-22 06:18:49
【问题描述】:

我需要创建一个服务来安排基本上是获取命中某个 servlet 的请求的作业。我尝试使用基于这篇文章Running a background Java program in Tomcat 的 servlet 上下文侦听器来执行此操作,但是定义的 web.xml 更改导致 Tomcat 服务器上出现 404 错误。有没有人对如何做到这一点有任何其他建议?

此时我的一个想法是定义一个可运行的 servlet

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

这是一个合理的方法吗?

【问题讨论】:

    标签: java jakarta-ee scheduled-tasks


    【解决方案1】:

    您可以考虑使用石英调度程序来处理作业:

    http://quartz-scheduler.org/
    

    例如(不特定于您的任务):

    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();
      }
    }
    

    另一种选择(快速周转)是仅使用 cron 作业或 Windows 任务管理器,具体取决于您的操作系统。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-30
      • 1970-01-01
      • 1970-01-01
      • 2018-04-11
      • 1970-01-01
      • 2021-08-25
      • 2010-10-24
      • 2014-04-14
      相关资源
      最近更新 更多