java Scheduler无法正常工作

时间:2015-05-25 06:03:31

标签: java tomcat scheduler

我在java web部署中使用以下代码作为调度程序

public class ReportScheduler implements ServletContextListener {

    private ScheduledExecutorService scheduler;

    @Override
    public void contextInitialized(ServletContextEvent sce) {
        scheduler = Executors.newSingleThreadScheduledExecutor();
        scheduler.scheduleAtFixedRate(new ReportLoader(sce.getServletContext()), 0, 10, TimeUnit.SECONDS);
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        scheduler.shutdownNow();
    }

实现runnable的ReportLoader类如下:

public class ReportLoader implements Runnable {

    ServletContext context;

    public ReportLoader(ServletContext context) {
        System.out.println("1");
        this.context = context;
        StartUp();
    }
     private void StartUp() {
    System.out.println("start");
    (new Thread(this)).start();
    }

    @Override
    public void run() {
        System.out.println("scheduled");
        try {
            //Files.delete(path);

        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
    }
}

但我的调度程序似乎没有工作,因为没有任何东西被打印在tomcat(这是我的服务器)日志上,正如人们所期望的那样。

我是否有任何错误,或者我需要确保的更多错误,以便调度程序正常工作?

调度程序的目的是在本地PC上定期删除文件夹。

1 个答案:

答案 0 :(得分:-1)

为什么要使用threadpool来运行Thread 你的代码:

private void StartUp() {
    System.out.println("start");
    (new Thread(this)).start();
 }