package com.sihuatech.project.task.manager;import java.text.parseexception;import org.quartz.crontrigger;import org.quartz.job;import org.quartz.jobdetail;import org.quartz.scheduler;import org.quartz.schedulerexception;import org.quartz.schedulerfactory;import org.quartz.trigger;import org.quartz.impl.stdschedulerfactory;/** * @title:quartz管理类 * * @description: * * @copyright: * @author lei 2008-10-8 14:19:01 * @version 1.00.000 * */public class quartzmanager { private static schedulerfactory sf = new stdschedulerfactory(); private static string job_group_name = "group1"; private static string trigger_group_name = "trigger1"; private static quartzmanager quartzmanager; public static quartzmanager getinstance() { if (quartzmanager == null) { quartzmanager = new quartzmanager(); } return quartzmanager; } private quartzmanager() { } /** * 添加一个定时任务,使用默认的任务组名,触发器名,触发器组名 * * @param jobname * 任务名 * @param job * 任务 * @param time * 时间设置,参考quartz说明文档 * @throws schedulerexception * @throws parseexception */ public static void addjob(string jobname, job job, string time) throws schedulerexception, parseexception { scheduler sched = sf.getscheduler(); jobdetail jobdetail = new jobdetail(jobname, job_group_name, job.getclass());// 任务名,任务组,任务执行类 // 触发器 crontrigger trigger = new crontrigger(jobname, trigger_group_name);// 触发器名,触发器组 trigger.setcronexpression(time);// 触发器时间设定 sched.schedulejob(jobdetail, trigger); // 启动 if (!sched.isshutdown()) sched.start(); } /** * 添加一个定时任务 * * @param jobname * 任务名 * @param jobgroupname * 任务组名 * @param triggername * 触发器名 * @param triggergroupname * 触发器组名 * @param job * 任务 * @param time * 时间设置,参考quartz说明文档 * @throws schedulerexception * @throws parseexception */ public static void addjob(string jobname, string jobgroupname, string triggername, string triggergroupname, job job, string time) throws schedulerexception, parseexception { scheduler sched = sf.getscheduler(); jobdetail jobdetail = new jobdetail(jobname, jobgroupname, job.getclass());// 任务名,任务组,任务执行类 // 触发器 crontrigger trigger = new crontrigger(triggername, triggergroupname);// 触发器名,触发器组 trigger.setcronexpression(time);// 触发器时间设定 sched.schedulejob(jobdetail, trigger); if (!sched.isshutdown()) sched.start(); } /** * 修改一个任务的触发时间(使用默认的任务组名,触发器名,触发器组名) * * @param jobname * @param time * @throws schedulerexception * @throws parseexception */ public static void modifyjobtime(string jobname, string time) throws schedulerexception, parseexception { scheduler sched = sf.getscheduler(); trigger trigger = sched.gettrigger(jobname, trigger_group_name); if (trigger != null) { crontrigger ct = (crontrigger) trigger; ct.setcronexpression(time); sched.resumetrigger(jobname, trigger_group_name); } } /** * 修改一个任务的触发时间 * * @param triggername * @param triggergroupname * @param time * @throws schedulerexception * @throws parseexception */ public static void modifyjobtime(string triggername, string triggergroupname, string time) throws schedulerexception, parseexception { scheduler sched = sf.getscheduler(); trigger trigger = sched.gettrigger(triggername, triggergroupname); if (trigger != null) { crontrigger ct = (crontrigger) trigger; // 修改时间 ct.setcronexpression(time); // 重启触发器 sched.resumetrigger(triggername, triggergroupname); } } /** * 移除一个任务(使用默认的任务组名,触发器名,触发器组名) * * @param jobname * @throws schedulerexception */ public static void removejob(string jobname) throws schedulerexception { scheduler sched = sf.getscheduler(); sched.pausetrigger(jobname, trigger_group_name);// 停止触发器 sched.unschedulejob(jobname, trigger_group_name);// 移除触发器 sched.deletejob(jobname, job_group_name);// 删除任务 } /** * 移除一个任务 * * @param jobname * @param jobgroupname * @param triggername * @param triggergroupname * @throws schedulerexception */ public static void removejob(string jobname, string jobgroupname, string triggername, string triggergroupname) throws schedulerexception { scheduler sched = sf.getscheduler(); sched.pausetrigger(triggername, triggergroupname);// 停止触发器 sched.unschedulejob(triggername, triggergroupname);// 移除触发器 sched.deletejob(jobname, jobgroupname);// 删除任务 }}
分享到:
相关推荐
Quartz.NET实例,Quartz管理类,功能点:动态改变周期
quartz 管理类的java文件,job的添加,删除,暂停恢复等
调度器负责管理Quartz.NET应用运行时环境。Quartz不仅仅是线程和线程管理。为确保可伸缩性,Quartz.NET采用了基于多线程的架构。启动时,框架初始化一套worker线程,这套线程被调度器用来执行预定的作业。这就是...
C# Quartz.Net定时任务操作明细、完整过程 每种场景均有涉及,代码Copy稍作修改就可使用
Spring 4.2.2 集成 Quartz Scheduler 2.2.2 的一个简单的 demo
quartz调度系统工具.zip
spring+mybatis maven quartz定时任务管理。 1、界面和部分代码来源于网络 2、设计思路:定义一个定时任务接口,每个定时任务实现该接口,项目启动时获取该接口所有实现类,并保存到数据库形成定时任务信息。项目...
任务调度的持久化功能,即新增修改删除之类的功能,这必须得要有的,不然都不知道后台都有什么作业在跑
NULL 博文链接:https://jsufly.iteye.com/blog/562437
spring-boot集成quartz实现动态任务管理,采用数据库存储方式,建表语句已经打包在一起,支持分布式集群。 代码开箱即用,没有集成业务模块,大家可以根据自己的业务场景自己去实现Job类即可。
-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 --> <bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> ...
内容提要:Quartz 从属性文件中加载多个插件类时不能保证加载的顺序,所以本节引入一个自定义的统一按顺序加载其他插件的,名之为插件加载器的东西,其实也就是其他插件类的父亲。 第八章. 使用 Quartz 插件 (第五...
本篇文章主要介绍了Spring Boot集成Quartz注入Spring管理的类的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
通过数据库配置要执行的类及方法,设定相应时间,定时执行任务
访问地址:http://localhost:8080/quartz/swagger-ui.html │ ├──command //命令开发模式 │ ├──commonfactory//普通工厂开发模式 │ ├──decorate //装饰者开发模式 │ ├──observer //观察者开发模式 │...
2、Quartz可以在Job执行过程中管理JTA事务(开始并提交它们),以便Job所执行的工作自动在JTA事务中进行。 六、聚类 1、故障转移。 2、负载均衡。 3、Quartz的内置集群功能依赖于通过JDBCJobStore进行数据库持久化...
实战会议管理项目(Springboot+mybatis+Maven+jsp+Quartz+...) 运行环境 jdk7+tomcat8+mysql+IntelliJ IDEA+maven 项目技术(必填) springboot+mybatis+bootstrap+jquery http://localhost:8080/login java main方式...
C# + SQL Server 本系统包括两类用户:学生、管理员。管理员可以通过系统来添加管理员信息、修改管理员信息、添加学生信息、修改学生信息;开设课程、查询课程、录入成绩、统计成绩 管理系统是一种通过计算机技术...
Quartz.Net是一个强大、开源、轻量的作业调度框架,在平时的项目开发当中也会时不时的需要运用到定时调度方面的功能,例如每日凌晨需要统计前一天的数据,又或者每月初需要统计上月的数据。当然也会出现既要统计日...
计时器没有真正的管理方案 – 你必须编写自己的机制,以便能够记住,组织和检索任务的名称等。 如果需要在.NET实现定时器的功能,可以尝试使用以下这款开源免费的组件Quartz.Net组件。目前Quartz.NET版本为3.0,修改...