微服务分布式架构 第十章 微服务的任务调度与分布式的任务调度
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
输上入轮一开个始l到on下g值轮,开上始轮相开隔始50到00下毫轮秒开。始相隔long毫秒。示例即:@Scheduled(fixedRate = 5000)
和fixedRate意义相同,但是输入参数改成StriFra Baidu bibliotekg。
@Scheduled(fixedRate = "5000")
输入一个long值,初始化long毫秒之后才进行任务调度。示例 即,Spring容器在初始化1000毫秒之后进行第一次任务调度, @Scheduled(initialDelay = 1000,fixedRate = 5000) 第一次任务调度开始时间每隔5000毫秒进行第二次任务调度。
参数 cron
fixedDelay fixedDelayString fixedRate fixedRateString
initialDelay
initialDelayString
@Scheduled注解详解
解析
示例
需要输入一个CRON的表达式,根据表达式来进行对任务调度 的时间上的控制。返回一个可以解析为CRON计划的表达式。
微服务分布式第十课的总结
通过《10.1. 【实例】微服务整合任务调度》小节整合了单点任务调度。 通过《10.4. 【实例】微服务整合任务调度分布式》小节整合了分布式任务调度,希望帮助读者可以轻松 的理解到有关于任务调度的分布式做法。
虽然因篇幅限制,有关于Quartz分布式的文墨较少,但是Quartz使用起来十分简便,并且生产中也可以使 用其它分布式解决方案的框架如《10.3.2 任务调度的分布式解决方案》小节所示,所以更重要的是理解 任务调度的分布式原理,而非对着API死记硬背。
@Scheduled(cron
=
"0/5
*
*
*
*
?")
输示入例一即个:l上on轮g值结,束上到一下轮轮结开束始到相下隔一10轮00开0毫始秒之。间相隔long毫秒。@Scheduled(fixedDelay = 10000)
和fixedDelay意义相同,但是输入参数改成String。
@Scheduled(fixedDelayString = "10000")
任务调度
任务调度指的是让程序在某个时间节点去做某件事,或者隔某个时间点去做某件事。例如银行工作有一个 “跑批任务”,每天银行核心系统每天六点会与金融理财系统进行对账,双方各提交一份txt文件并且查询两 份文件是否有不一致的地方。该业务要求的时间每天晚上六点进行,即是靠任务调度来进行实现的。
单点情况下的任务调度如果一旦出现服务器异常,则无法正常执行规定好的任务,此时就需要依靠任务调 度分布式的方案来进行解决,但是任务调度无法靠《第四章分布式的客户端负载均衡》章节中的Ribbon 或Nginx来进行客户端或服务器的高可用和负载均衡,因为如果用了以上两种方式进行任务调度的话,同 时启动多台服务器将会在规定的时间内执行相同的任务,容易造成任务的重复执行、数据库脏读等相关 bug。
和initialDelay意义相同,但是输入参数改成String。
@Scheduled(initialDelayString = "1000",fixedRate = 5000)
微服务分布式第十课的实验 1. 【实例】微服务整合任务调度 2. 【实例】微服务整合任务调度分布式
微服务分布式第十课的习题 1. 创建Spring Boot工程,整合@Scheduled任务调度。 2. 创建Spring Boot工程1与Spring Boot工程2,使两个工程同时整合Quartz达到分布式任务调度的效果。