定时任务概述

简介: 定时任务概述

什么是定时任务

通过时间表达式来进行调度和执行的一类任务被称为定时任务。一般能解决的业务场景:定时对账、服务到期的定时提醒、订单超时未支付的自动取消等。

有哪些定时任务实现方案

单体架构调度技术

  • 轮询+线程休眠

while(true) + Thread.sleep

  • java.util.Timer + java.util.TimerTask

Timer是一个定时器工具,用来在一个后台线程计划执行指定任务,它可以计划执行一个任务或反复多次

TimerTask是一个抽象类,它的子类代表一个可以被Timer计划执行的任务

  • ScheduledExecutorService

JDK1.5之后作为并发工具被引入,默认只支持周期性的执行频率(如每秒/每分钟),要支持具体某一刻年月日时分秒的执行窗口需要自定义扩展,较麻烦

  • Quartz

开源任务调度框架,Java语言编写实现,支持Spring整合使用

  • SpringTask

spring框架提供的轻量级定时任务调用工具

SpringBoot框架下可使用注解:@EnableScheduling+@Scheduled,底层还是SpringTask

分布式架构调度技术

分布式场景可能遇到的问题

  • 多台机器集群部署的定时任务如何保证不被重复执行
  • 如果在不重启服务前提下,动态调整定时任务执行时间
  • 部署定时任务的机器发生故障如何故障转移
  • 如何对定时任务做任务监控

业界解决方案

  • 淘宝:TBSchedule,现在是:ScheduleX
  • 当当:Elastic-Job
  • 唯品会:Saturn,基于当当的二次开发,新增一些特性
  • 大众点评:XXL-JOB
gkkkkk
+关注
目录
打赏
0
1
1
0
37
分享
相关文章
开发指南056-定时任务
业务场景中定时任务很常见。平台实现定时任务的原则如下
若依修改定时任务,定时任务在系统监控的定时任务当中,宕机情况都不会去管,涉及到定时任务
若依修改定时任务,定时任务在系统监控的定时任务当中,宕机情况都不会去管,涉及到定时任务
定时任务基本使用指南(cron 时间表达式、Spring 自带调度器、JDK 原生定时器)
定时任务基本使用指南(cron 时间表达式、Spring 自带调度器、JDK 原生定时器)
712 0
定时任务的六种策略
这篇文章,我们聊聊实现定时任务的六种策略。
定时任务优化
简单描述一下定时任务的优化
162 0
定时任务之elastic-job概述
定时任务之elastic-job概述
439 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等