今天项目上需要做个定时任务,临时学的,quartz的功能还是很强大用起来也方便,这里的demo只是实现每天定时执行一次,其他功能可以在此基础上继续深入学习,哈哈 睡觉,明天继续。
一直有想法把自己学的东西记录整理分享做出来,一直没动过,今天开始第一篇,这是今天项目上需要做个定时任务,临时学的,quartz的功能还是很强大用起来也方便,这里的demo只是实现每天定时执行一次,其他功能可以在此基础上继续深入学习,哈哈 睡觉,明天继续。
一、maven依赖:
<dependency><groupid>org.quartz-scheduler</groupid><artifactid>quartz</artifactid><version>2.2.3</version> </dependency> <dependency><groupid>org.quartz-scheduler</groupid><artifactid>quartz-jobs</artifactid><version>2.2.3</version> </dependency>
二、Doem:
TimingTaskSchedule需要实现ServletContextListener接口,监听后启动项目时的启动类
package com.thinkgem.jeesite.modules.sys.listener;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;public class TimingTaskSchedule implements ServletContextListener{// 服务器启动时执行该事件 @Overridepublic void contextInitialized(ServletContextEvent arg0) {try { QuartzLoad.run(); } catch (Exception e) { e.printStackTrace(); } }// 服务器停止时执行该事件 @Overridepublic void contextDestroyed(ServletContextEvent arg0) {try { QuartzLoad.stop(); } catch (Exception e) { e.printStackTrace(); } } }
这里的 0 0 0 ? * * 表示每天00:00:00执行一次
从左到右分别表示 秒 分 时 日 月 周 年
?表示不关心 *表示每 年可以忽略不写
package com.thinkgem.jeesite.modules.sys.listener;import org.quartz.CronScheduleBuilder;import org.quartz.CronTrigger;import org.quartz.Job;import org.quartz.JobBuilder;import org.quartz.JobDetail;import org.quartz.Scheduler;import org.quartz.SchedulerFactory;import org.quartz.TriggerBuilder;import org.quartz.impl.StdSchedulerFactory;import com.thinkgem.jeesite.modules.sys.listener.job;public class QuartzLoad {private static Scheduler sched; public static void run() throws Exception { System.out.println("定时任务启动"); JobDetail jobDetail = JobBuilder.newJob((Class extends Job>) job.class) .withIdentity("myjob", "group1").build();CronTrigger trigger =(CronTrigger) TriggerBuilder.newTrigger() .withIdentity("trigger", "group1") .withSchedule(CronScheduleBuilder.cronSchedule("0 0 0 ? * *")) .build(); SchedulerFactory sfact = new StdSchedulerFactory(); Scheduler schedule = sfact.getScheduler(); schedule.start(); schedule.scheduleJob(jobDetail, trigger); }//停止 public static void stop() throws Exception{ sched.shutdown(); } }
Job中就是自己的业务处理
job execute(JobExecutionContext arg0) == SimpleDateFormat("yyyy-MM-dd HH:mm:ss""Time:"+"Hello"
三、web.xml监听:
com.thinkgem.jeesite.modules.sys.listener.TimingTaskSchedule
<listener> <listener-class>com.thinkgem.jeesite.modules.sys.listener.TimingTaskSchedule </listener-class> </listener>
以上是配置web.xml的实例教程的详细内容。更多信息请关注PHP中文网其他相关文章!

Scheduler每次执行,都会根据JobDetail创建一个新的Job实例,这样就可以规避并发访问的问题(jobDetail的实例也是新的)Quzrtz定时任务默认都是并发执行,不会等待上一次任务执行完毕,只要间隔时间到就会执行,如果定时任务执行太长,会长时间占用资源,导致其它任务堵塞@DisallowConcurrentExecution:job类上,禁止并发地执行同一个job定义(JobDetail定义的)的多个实例。scheduler:可以理解为定时任务的工作容器或者说是工作场所,所有定

部署到webapps目录启动本文使用的Spring版本为Spring6,SpringBoot版本为3,JDK为17,可能会和之前有细微不同,但整体流程差不太大。如果部署应用到tomcatwebapps目录下面启动,则需要在项目中配置web.xml文件web.xml文件配置Spring应用上下文contextConfigLocation/WEB-INF/spring/application-context.xmlorg.springframework.web.context.ContextLoad

定时任务使用指南如果你想做定时任务,有高可用方面的需求,或者仅仅想入门快,上手简单,那么选用它准没错。定时任务模块是对Quartz框架进一步封装,使用更加简洁。1、引入依赖xin.altitude.cmsucode-cms-quartz1.5.4.12、快速上手实现org.quartz.Job接口;使用注解CronExp添加任务的调度策略;使用注解Component将任务注入容器中。启动项目,定时任务便处于监听与运行中。@Component@DisallowConcurrentExecution

配置文件sue.spring.quartz.cron=*/5****?pomorg.springframework.bootspring-boot-starter-quartz定时任务和触发器packagecom.luke.demo.schedule;importorg.quartz.*;importorg.springframework.beans.factory.annotation.Value;importorg.springframework.context.annotation.Bea

Servlet容器是提供Servlet运行环境的应用程序,它负责管理Servlet的生命周期、提供必要的WEB服务,如安全性、事务等。Servlet容器有很多种,其中最常见的是Tomcat和Jetty。Servlet容器主要功能生命周期管理:Servlet容器负责管理Servlet的生命周期,包括启动、初始化、服务和销毁。Web服务:Servlet容器提供web服务,如安全性、事务等。资源管理:Servlet容器管理资源,如Servlet、jsP、html页面等。类加载:Servlet容器负责加

随着互联网技术的飞速发展,数据的处理速度成为了各个行业和公司竞争的关键。在这个过程中,缓存技术成为了提升数据处理速度的重要手段。而Quartz缓存技术作为一种高效的缓存技术,已经被越来越多的企业所采用。本文将详细介绍Quartz缓存技术以及其使用方法和优缺点。一、什么是Quartz缓存技术?Quartz缓存技术是一种基于内存的缓存技术,它可以将

Java定时器:如何设置指定日期和时间执行任务?在开发Java应用程序时,定时执行任务是一个常见需求。比如,在某个特定的日期和时间执行特定的任务,如发送定时邮件、生成报表等。Java提供了多种定时任务的实现方式,其中最常用的是Timer和ScheduledExecutorService。本文将重点介绍如何使用Timer和ScheduledExecutorSe


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

Atom编辑器mac版下载
最流行的的开源编辑器

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)