Quartz 手动更新定时任务简单实现
最近项目中因为要连接许多硬件设备,硬件服务于我们的server服务是通过socket进行通信,本来有一个默认的定时器策略,于硬件交换数据,
现在有这么一个需求,需要人工维护 server和硬件通信的频率 ,然后想到了 Quartz;
由于我也是第一次接触这个框架,边写边学吧,项目是使用的maven进行管理 quartz的版本是2.2.1 因为我发现这个版本被引用的几率是最高的 ,然后我们也用吧。
<!--定时任务用到的--><dependency><groupId>org.quartz-scheduler</groupId><artifactId>quartz</artifactId><version>2.2.1</version></dependency>
看看用到的类和接口
Schedule 统一的调度接口 多有的定时任务都是受此接口进行控制
JobDetail 这个接口是保存定时任务的,具体的业务任务都将被此接口封装
Job 任务工作接口 具体实现业务的类都要实现此接口 并且实现他的execute(JobExecutionContext jobExecutionContext)方法
Trigger 定时接口 封装你的的定时策略
然后贴一下JOB的实现类
import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException;/*** 具体任务类* 每个具体执行任务的类 都需要实现job接口 并 复写执行方法* Created by Administrator on 2017/3/1.*/public class MyJob implements Job {//计数Integer num = 0;//被执行的任务 @Overridepublic void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {num += 1;System.out.println("执行第" + num + "次任务");//打印结果都是相同的 说明每次执行任务的job类都是通过反射生成的一个全新的对象//console--------------------- // 执行第1次任务 // 执行第1次任务 // 执行第1次任务 // 执行第1次任务 // 执行第1次任务 // 执行第1次任务 // 执行第1次任务 } }
然后是调用此jOB
import org.quartz.*; import org.quartz.impl.StdSchedulerFactory;import java.text.ParseException;/**** 任务调度类* 1、需要先得到一个Schedule实例* 2、然后创建一个包含任务信息的JobDetail* 3、最后创建一个Trigger管理任务的执行* Created by Administrator on 2017/3/1.*/ public class MyQuartzScheduling {public static void main(String[] args) throws SchedulerException, ParseException {//获取调度类实例SchedulerFactory schedulerFactory = new StdSchedulerFactory();Scheduler scheduler = schedulerFactory.getScheduler();//启动 scheduler.start();//初始化包含调度工作的实例JobDetail jobDetail= JobBuilder.newJob(MyJob.class)//工作名 工作组.withIdentity("test","group").build();// 表达式调度构建器 让他每两秒执行一次CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule("0/2 * * * * ?");Trigger trigger= TriggerBuilder.newTrigger()//工作名 工作组.withIdentity("trigger","group").startNow().withSchedule(scheduleBuilder) .build();scheduler.scheduleJob(jobDetail,trigger);} }
好了 简单的定时策略就做成了
转载于:https://www.cnblogs.com/lewskay/p/6489433.html
Quartz 手动更新定时任务简单实现相关推荐
- win10易升_怎么还有人不会禁用Win10自动更新?!!超简单!!!而且手动更新无碍...
知乎还有一大堆人在抱怨win10自动更新,然后说自己用了什么什么办法,诶,这么简单的事情居然还要我单独开一篇文章来解释清楚 我知乎回答很多次了这个最最简单的办法 计算机HKEY_LOCAL_MACHI ...
- Quartz框架实现定时任务介绍及简单使用
https://blog.csdn.net/bicheng4769/article/details/81097305 Quartz框架介绍及简单使用 https://www.cnblogs.com/d ...
- Spring 3整合Quartz 2实现定时任务--转
常规整合 http://www.meiriyouke.net/?p=82 最近工作中需要用到定时任务的功能,虽然Spring3也自带了一个轻量级的定时任务实现,但感觉不够灵活,功能也不够强大.在考虑之 ...
- Spring 3整合Quartz 2实现定时任务(转)
http://www.meiriyouke.net/?p=82 最近工作中需要用到定时任务的功能,虽然Spring3也自带了一个轻量级的定时任务实现,但感觉不够灵活,功能也不够强大.在考虑之后,决定整 ...
- java定时执行sql语句_spring中使用quartz动态添加定时任务执行sql
系统用来每天插入视图数据... 一.数据库表设计 1.接口配置表(t_m_db_interface_config) 2.接口日志表(t_m_db_interface_log) 3.前端配置页面 查询页 ...
- Quartz定时器与定时任务知识概括
Quartz定时器与定时任务知识概括 定时任务调度 其他定时器 Quartz简介 Quartz简单入门 Spring和Quartz集成 SSMM和Quartz集成 Quartz集群 Quartz配置 ...
- java 定时任务插件_详解Spring整合Quartz实现动态定时任务
最近项目中需要用到定时任务的功能,虽然spring 也自带了一个轻量级的定时任务实现,但感觉不够灵活,功能也不够强大.在考虑之后,决定整合更为专业的Quartz来实现定时任务功能. 普通定时任务 首先 ...
- SpringBoot整合Quartz执行持久化定时任务
使用: 个人博客项目,定时刷新帖子排名用到了定时任务,在这里记录下来SpringBoot整合Quartz的基本使用,记录的同时也希望能帮助到大家. 1.什么是Quartz 官方介绍: Quartz是一 ...
- centos7手动更新、每天自动更新
系统环境:centos7.4 1.手动更新软件包命令 # yum update -y 备注:可以采用定时任务crontab进行更新 2.CentOS 7 使用数个软件来自动执行指令:cron.anac ...
最新文章
- 还应该如何实现“模板化函数指针”?
- JAVA WEB开发环境与搭建
- 笔记本电脑锁_小雷问答丨3000-3500 价格的笔记本电脑怎么选?
- 华为交换机S3700端口基本配置
- python tkinter frame滚动条_如何在Tkinter中创建带有滚动条的LabelFrame?
- IntelliJ IDEA Maven配置 MAC系统
- 他山之石:加载图片的一个小问题
- vb查询mysql数据库实例_初识vb数据库开发之实例5(数据查询)
- 系统集成项目管理工程师10大管理47个过程域输入输出工具(项目成本管理)
- linux免费日志分析工具,分享10个优秀的日志分析工具
- java格林尼治时间_Java日期时间使用总结
- 是非人生 — 一个菜鸟程序员的5年职场路 第24节
- Excel巧做项目管理
- Android 音视频难学?音视频(流媒体)开发学习也有套路
- ##gif录制软件——初识GifCam##
- web前端期末大作业:美食网站设计与实现——HTML+CSS+JavaScript休闲美食餐饮公司网站静态模板(6个页面)
- matlab:Invalid character code sequence detected
- python使用turtle库绘制一个红色五角星_使用turtle库绘制红色五角星图形
- Ubuntu开机自启动程序的方法
- 梦幻西游手游服务器维护时间表,梦幻西游手游4月17日维护更新公告