首页 > 编程语言 >Java Tomcat7中使用Quartz2.2实现定时任务项目代码实例(demo)

Java Tomcat7中使用Quartz2.2实现定时任务项目代码实例(demo)

时间:2024-04-07 19:46:26浏览次数:16  
标签:Quartz Java demo Quartz2.2 quartz scheduler org import 定时

 

在Java中使用Quartz 2.2结合Tomcat 7实现定时任务是一种常见的需求,Quartz是一个强大的定时任务库,能够帮助开发者轻松实现复杂的定时任务调度。以下是一个简单的示例,展示如何在Java Web应用中集成Quartz来执行定时任务。

 
详细文档:Java Tomcat7中使用Quartz2.2实现定时任务项目代码实例(demo)-CJavaPy

1)添加Quartz依赖

首先,确保在你的pom.xml文件中加入Quartz的依赖。这样Maven就能自动下载Quartz库。

<dependencies>
    <dependency>
        <groupId>org.quartz-scheduler</groupId>
        <artifactId>quartz</artifactId>
        <version>2.2.0</version>
    </dependency>
</dependencies>

2)创建定时任务

接下来,创建一个实现了org.quartz.Job接口的类。在这个类中实现你的定时任务逻辑。

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class HelloJob implements Job {
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
        System.out.println("Hello, Quartz! - executing its JOB at " + new java.util.Date());
    }
}

3)初始化并启动调度器

在Web应用的启动时初始化并启动Quartz调度器。可以通过实现ServletContextListener接口,在Web应用启动和关闭时分别启动和停止调度器。

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;

public class QuartzListener implements ServletContextListener {

    private Scheduler scheduler;

    @Override
    public void contextInitialized(ServletContextEvent sce) {
        try {
            // 创建调度器
            scheduler = StdSchedulerFactory.getDefaultScheduler();

            // 定义一个触发器
            Trigger trigger = TriggerBuilder.newTrigger()
                    .withIdentity("trigger1", "group1")
                    .startNow()
                    .withSchedule(SimpleScheduleBuilder.simpleSchedule()
                            .withIntervalInSeconds(10) // 每10秒执行一次
                            .repeatForever())
                    .build();

            // 定义一个任务
            JobDetail job = JobBuilder.newJob(HelloJob.class)
                    .withIdentity("job1", "group1")
                    .build();

            // 调度器关联任务和触发器,保证按触发器定义的条件执行任务
            scheduler.scheduleJob(job, trigger);

            // 启动调度器
            scheduler.start();
        } catch (SchedulerException e) {
            e.printStackTrace();
        }
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        try {
            if (scheduler != null) {
                scheduler.shutdown();
            }
        } catch (SchedulerException e) {
            e.printStackTrace();
        }
    }
}

4)配置web.xml

最后,在web.xml中注册你的ServletContextListener

<listener>
    <listener-class>your.package.QuartzListener</listener-class>
</listener>


详细文档:Java Tomcat7中使用Quartz2.2实现定时任务项目代码实例(demo)-CJavaPy

标签:Quartz,Java,demo,Quartz2.2,quartz,scheduler,org,import,定时
From: https://www.cnblogs.com/tinyblog/p/18119745

相关文章

  • Java登陆第四十天——Router路由守卫练习
    需求未登录无法访问除login页面练习1.使用vite创建项目,导入依赖npmcreatevite 选择vue+jsnpmi 导入基本依赖npmvue-router 导入路由依赖2.创建组件,login.vue、home.vue、list.vue仅展示home.vue组件,其他都一样。<scriptsetup></script><template><h3>我是hom......
  • 后端学习记录~~JavaSE篇(day03-流程控制语句-下-----循环语句)
    摘要:循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要通过修改循环变量使得循环判断条件为false,从而结束循环,否则循环将一直执行下去,形成死循环。一.for循环for(初始化语句①;循环条件语句②;迭......
  • java中的栈和队列
    java中的栈和队列栈特点:先进后出插入和删除只能在一段进行(栈顶),另一端称为(栈底)插入和删除的时候时间复杂度都是最理想的O(1)java中提供了一个类:Stack,并且实现了泛型方法:empty()检测栈是否为空peek()查看头部元素,不删除pop()删除头部元素,并返回删除的元素push()将该元素......
  • Java登陆第四十天——Router路由守卫
    路由守卫就是在切换页面的期间,执行的函数。 类似于Vue的钩子函数 类似于Setvlet的Filter(过滤器)路由守卫路由守卫,就是在路由切换期间执的函数。由vue-router提供的两个常见守卫(函数):全局前置守卫beforeEach和全局后置守卫afterEach语法格式如下:/*全局前置守卫beforeEa......
  • Java集合常用类及使用特点
    Java集合框架提供了一组接口和类,用于存储和操作对象集合。它包括常用的数据结构,如列表、集合、映射等,以及对应的实现类。主要接口和类:List(列表):允许重复元素,按照插入顺序存储。常用实现类有ArrayList(查询快、增删慢)和LinkedList(增删快、查询慢)。ArrayListvs.LinkedList:Ar......
  • 自制小钢琴(Java)
    简易版小钢琴packagePianoGame;importjavax.swing.*;importjava.awt.*;publicclassPianoGameextendsJFrame{Buttonbutton=null;//定义两个参数,分别为宽,高publicstaticfinalintWIDTH=700;publicstaticfinalintHEIGHT=450;......
  • Java的异常机制
    异常机制三种类型检查型异常:程序员无法预见的运行时异常:在编译时会被忽略错误ERROR:错误在代码中被忽略,在编译时检查不到异常处理机制抛出异常捕获异常异常处理的五个关键字:try,catch,finally,throw,throws以下为这五个关键词的使用方法:packageexception;publicclassD......
  • Java商城免费搭建 VR全景商城 saas商城 b2b2c商城 o2o商城 积分商城 秒杀商城 拼团商
     1.涉及平台平台管理、商家端(PC端、手机端)、买家平台(H5/公众号、小程序、APP端(IOS/Android)、微服务平台(业务服务) 2.核心架构SpringCloud、SpringBoot、Mybatis、Redis3.前端框架VUE、Uniapp、Bootstrap/H5/CSS3、IOS、Android、小程序4.核心思想分布式、微服务......
  • java 企业工程管理系统软件源码+Spring Cloud + Spring Boot +二次开发+ MybatisPlus
    鸿鹄工程项目管理系统SpringCloud+SpringBoot+Mybatis+Vue+ElementUI+前后端分离构建工程项目管理系统项目背景一、随着公司的快速发展,企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性,公司对内部工程管理的提升提出了更高的要......
  • java 企业工程管理系统软件源码+Spring Cloud + Spring Boot +二次开发+ MybatisPlus
     鸿鹄工程项目管理系统SpringCloud+SpringBoot+Mybatis+Vue+ElementUI+前后端分离构建工程项目管理系统项目背景一、随着公司的快速发展,企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性,公司对内部工程管理的提升提出了更高的......