Java 禁用在tomcat启动时运行调度程序

Java 禁用在tomcat启动时运行调度程序,java,tomcat,servlets,Java,Tomcat,Servlets,我有一个时间表,每天在特定时间安排电子邮件服务。我扩展了HttPServlet,并在init()方法中调用运行调度的方法 当服务器重新启动时,它会触发计划程序,并在每次服务器重新启动时发送电子邮件,同时它也会在选定的时间被触发 是否有不同的方法来禁用在服务器启动时运行调度程序 public class BatchJobsServlet extends HttpServlet { public void init(ServletConfig arg0) throws Servlet

我有一个时间表,每天在特定时间安排电子邮件服务。我扩展了
HttPServlet
,并在
init()
方法中调用运行调度的方法

当服务器重新启动时,它会触发计划程序,并在每次服务器重新启动时发送电子邮件,同时它也会在选定的时间被触发

是否有不同的方法来禁用在服务器启动时运行调度程序

public class BatchJobsServlet extends HttpServlet {
        public void init(ServletConfig arg0) throws ServletException {
        super.init(arg0);

        /**
         * TODO Assign to single node on server for Batch Processing
         */
        if(isBatchServer()) {
            initDailyBatch();
        }
        try {

        //

        } catch(Exception e) {
            e.printStackTrace();
        }

        initDailyBatch();
    }


    private void initDailyBatch() {
        try {
            //Code to set the timer and trigger the scheduler
            }

        } catch(Exception e) {

        }
    }
}
web.xml中

 <servlet>
        <display-name>BatchJobsServlet </display-name>
        <servlet-name>BatchJobsServlet </servlet-name>
        <servlet-class>...BatchJobsServlet </servlet-class>
        <load-on-startup>1</load-on-startup>
      </servlet>

批作业服务器
批作业服务器
…批量作业服务器
1.

您可以记录上次发送邮件的时间,并在每次
init()
调用(重新启动)后检查是否是发送邮件的时间

更好的解决方案允许本机服务这样做,例如
cron
,只需cron调用本地应用程序,该应用程序将触发servlet(通过调用路径和授权令牌)