Java调度服务

时间:2012-07-23 23:57:42

标签: java java-ee scheduled-tasks

我需要创建一个服务来安排基本上获取命令的作业。我尝试使用基于此帖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);
     }
}

这是一种合理的方法吗?

1 个答案:

答案 0 :(得分:0)

你可以考虑使用石英调度程序来完成工作:

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

另一个选择(快速turaround)是根据您的操作系统使用cron作业或Windows任务管理器。