如何自己设计一个定时任务分布式调度器

痛定思痛。 2023-09-27 15:55 173阅读 0赞

为什么要使用分布式调度器

分布式调度器主要应用于系统中一些任务定时调度处理。通常我们设计一个定时任务,最简单的就是直接使用@scheduled注解配置好定时任务,这样开发工作也简单。但是也许会有一种情况,如果发生在生产环境上,需要不重启就去变更定时任务时间,或者可能由于某些原因我们需要关闭某个定时任务,那么这时候就无法做到动态化。分布式调度器就能很好的解决这些疑难杂症。

有的人可能会问:现在开源的调度器也有一些很流行的,比如xxl-job,为什么还要自己设计一套。其实我们也不能说开源的设计不好,原因是它的功能太完善,如果要用好还要有人专门运维处理,功能过于强大,大部分功能都是鸡肋,所以自研一套简单的调度服务有些时候还是很有必要的。

分布式调度流程

首先分布式调度器需要依赖数据库配置,主要配置调度服务接口和调度时间。通过调度服务集群获取数据库配置,解析完需要进行调度的任务,由于是job服务的一个集群(也可以单机部署)所以也要考虑到加锁,防止多个job服务同时对一个任务多次调度。最终job服务将解析完的服务接口,检测到触发时间点就对应用服务接口发起任务调度。

c533a91011132cdbb38ec8a48d9c4e9a.png

分布式调度细节设计分析

数据库设计

job_info表设计:主要记录一些job任务的配置,下面分析一下主要字段:</

发表评论

表情:
评论列表 (有 0 条评论,173人围观)

还没有评论,来说两句吧...

相关阅读