java - 在 Tomcat 6 中自动化 Quartz 计划作业

标签 java jakarta-ee scheduler

我可以使用 Quartz 2 Scheduler 来调度 Java 程序。每当 Apache 服务器启动时,我都需要启动该调度程序。如何做到这一点?

最佳答案

有多种方法可以做到这一点。您可以只使用带有静态初始化 block 的普通 Java 类来初始化 Quartz 计时器。如果您想以 JavaEE 方式实现,那么您可以使用 EJB3.x 或 Servlet。

使用 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>

关于java - 在 Tomcat 6 中自动化 Quartz 计划作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22048164/

相关文章:

java - 存储在 Hibernate 二级缓存中的对象是否保证为 "immutable"?

java - 与 Netty 一起使用时 Camel ServicePool 背后的逻辑

java - Apache POI 从文件读取时抛出编码错误,但从 Stream 读取时不会抛出编码错误

java - SHA1 和 RSA 与 java.security.Signature 对比 MessageDigest 和 Cipher

java - Web 应用程序中的依赖类出现 NoClassDefFoundError

java - 使用 Logback 登录到系统输出的 Websphere - 格式问题

kubernetes - 部署定制的kube-scheduler

java - 删除向导请求响应日志记录

Hadoop Capacity Scheduler - 使用默认队列

fullcalendar 调度程序 columnFormat & slotLabelFormat