我可以使用Quartz 2 Scheduler在Java中安排程序。我需要在Apache Server启动时启动该调度程序。怎么做?
答案 0 :(得分:1)
有几种方法可以做到这一点。您可以使用带有静态初始化程序块的普通Java类来初始化Quartz计时器。如果您想以JavaEE方式进行,那么您可以使用EJB3.x或Servlets。
使用EJB3.x Singleton的示例 -
import javax.annotation.PostConstruct;
import javax.ejb.Singleton;
import javax.ejb.Startup;
@Startup
@Singleton
public class QuartzTimerBean{
@PostConstruct
public void init() {
...
// Start Quartz timer here
...
}
@PreDestroy
public void cleanup(){
...
// Clean up Quartz timer
...
}
}
使用ServletContextListener
的示例import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class QuartzTimerListener implements ServletContextListener{
@Override
public void contextInitialized(ServletContextEvent arg0) {
...
// Start Quartz timer here
...
}
@Override
public void contextDestroyed(ServletContextEvent arg0) {
...
// Clean up Quartz timer
...
}
}
web.xml
<web-app ...>
<listener>
<listener-class><fully qualified path>.QuartzTimerListener</listener-class>
</listener>
</web-app>