文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
在项目开发过程中 , 有时候需要利用定时任务技术来完成某些周期性的任务 , 比如 , 定时下载对账单、定时进行数据对比、转换 , 数据定时入库等等 。 在最开始的时候部分开发人员习惯直接在项目中硬编码一些定时器 。
我们先看一下一个简单的示例:
这样做的好处就是方便 , 调试的时候修改一下定时@Scheduled里面的时间 , 然后启动项目就可以运行 , 但这样做的弊端更大 , 主要有几个方面:
1、固定的定时任务触发时间 , 一旦需要修改执行时间 , 线上的代码需要替换安装包或者打补丁
2、当服务需要进行多节点部署时 , 无法控制多个节点的同时执行 , 可能会重复执行导致数据混乱 , 因为 @Scheduled 是 spring 自带的注解 , 默认是单线程的 , 多节点集群部署的服务 , 需要加分布式锁来控制 , 或者直接用分布式定时任务 Elastic-Job 或者 XXL-JOB 等 。
抛开一些小型的项目不说 , 很多企业为了系统的稳定性和高并发 , 都会选择集群部署 , 那就需要避开这些问题 , 今天我们就介绍一个开源项目中比较常用的定时任务技术Quartz 。
一、Quartz的认识解释:Quartz 是一个开源的作业调度框架 , 它完全由 Java 写成 , 并设计用于 J2SE 和 J2EE 应用中 。 它提供了巨大的灵活性而不牺牲简单性 。 你能够用它来为执行一个作业而创建简单的或复杂的调度 。 它有很多特征 , 如:数据库支持 , 集群 , 插件 , EJB 作业预构建 , JavaMail 及其它 , 支持 cron-like 表达式等等 。
从这句话我们可以看出来 , Quartz满足我们前面说到的要求 , 它既能实现集群又支持动态设置cron表达式 , 方便管理维护 。
1、cron表达式
不管是哪种定时技术 , 我们都需要设置cron表达式 , 告诉系统我们需要什么时候执行 , 那我们就先来了解cron表达式的构成 。
cron表达式是用来配置spring定时任务执行时间的字符串 , 由5个空格分隔成的6个域构成 , 格式如下:
每一个域的含义解释:
1) 秒:表示在指定的秒数触发定时任务 , 范围0-59 。 例如 , \"*\"表示任何秒都触发 , \"03\"表示0秒和3秒触发 。
【数据库|Quartz 作业调度框架的掌握,从基础的纯服务到界面可配置化改进】2) 分:表示在指定的分钟触发定时任务 , 范围0-59 。 例如 , \"0-3\"表示0分钟到3分钟每分钟都触发 , \"0/2\"表示只有偶数分钟触发 。
- 数据库|杭州米链科技受邀出席2022世界人工智能大会,共探下一代价值互联网建设
- 关系型、非关系型数据库存储选型盘点大全
- 电话手表还能学习?现在的孩子真幸福,作业帮学习手表X9真实体验
- 数据库|小米苹果用户纷纷加入阵营!新表皇OPPO Watch 3系列玩得太“花”
- 数据库|JAVA等主流编程语言有无可能代替ABAP?
- 数据库|iPhone在美国智能手机市场份额首次超过50%
- 数据库|中国电商巨头拼多多在美国低调启动在线购物网站
- 扫词翻译,高效学习:作业帮学习手表X9深度体验
- 本文转自:国际在线8月31日至9月5日|科技为人 成就非凡,作业帮携多款智能产品亮相2022年服贸会
- 作业帮|什么是全网营销?全网营销能给企业带来什么好处