如何设计一个定时任务?

发布时间 2023-08-18 21:43:24作者: 四十四次日落95

一.日常工作中使用到的框架?

单机:Quartz,Spring Schedule 等框架;

分布式: SchedulerX,ElasticJob,xxlJob 等分布式任务调度

二.定时任务的作用

简单来讲为某个时间执行某些具体的任务

1.数据获取  2.财务账目核对 3.定时数据备份 4.定时更新数据平台的数据

三.定时任务可以使用什么数据结构来实现?

3.1 数组

将所有的任务存放在一个数组里面,间隔单位时间遍历数组,找到满足时间的任务,查询时间复杂度为o(N),

新增任务即为新增一个元素。

3.2 优先队列

随着时间的增加,超过时间的任务已经被执行过或者丢弃了,因此我们只需要查询最接近当前时间的,即前几个最小的任务,可以使用小根堆实现。

新增任务即为往树里面插入元素,时间复杂度为o(log(N)),查找复杂度为o(log(N))

3.3时间轮算法