定时任务概述

简介: 定时任务指通过时间表达式调度执行的任务,适用于定时对账、超时取消等场景。实现方案包括单体架构的轮询休眠、Timer、ScheduledExecutorService、Quartz、SpringTask,以及分布式架构下的TBSchedule、Elastic-Job、XXL-JOB等,解决集群重复执行、动态调度、故障转移与监控问题。(238字)

什么是定时任务
通过时间表达式来进行调度和执行的一类任务被称为定时任务。一般能解决的业务场景:定时对账、服务到期的定时提醒、订单超时未支付的自动取消等。
有哪些定时任务实现方案
单体架构调度技术
轮询+线程休眠
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

相关文章
|
Kubernetes Linux Shell
k8s教程(pod篇)-定时任务
k8s教程(pod篇)-定时任务
1132 1
IntelliJ IDEA 如何实现代码展示自动换行
IntelliJ IDEA 如何实现代码展示自动换行
IntelliJ IDEA 如何实现代码展示自动换行
|
存储 Kubernetes 负载均衡
K8S原理和实践
K8S原理和实践
715 0
|
4月前
|
存储 SQL 人工智能
Windows Server 2025 中文版、英文版下载 (2025 年 12 月更新)
Windows Server 2025 LTSC x64 (updated Dec 2025)
924 1
|
7月前
|
存储 NoSQL 关系型数据库
MongoDB常用命令
本文介绍了MongoDB中针对文章评论数据的数据库、集合和文档操作方法。包括数据库的创建与删除、集合的显式与隐式创建及删除、文档的增删改查及高级查询操作(如分页、排序、统计),适用于快速掌握MongoDB基础操作。
314 0
|
4月前
|
存储 算法 BI
xxljob本地运行
本文介绍XXL-JOB分布式任务调度的使用方法,包含源码获取、服务端部署(数据库导入、配置修改、启动访问)、客户端注册执行器、调度任务配置及测试执行。支持多种路由策略与分片广播,适用于分布式环境下的定时任务管理。
|
4月前
|
缓存 Java 数据库
Spring Boot中使用监听器
本文介绍了Web监听器的概念及在Spring Boot中的应用,涵盖监听ServletContext、HttpSession和ServletRequest的实战场景,实现数据缓存、在线人数统计与请求信息获取,并详解自定义事件与监听器的实现,适用于微服务间通信等业务需求,具有较强的实用价值。
|
消息中间件 Serverless 数据安全/隐私保护
开发者如何使用云消息队列 RabbitMQ 版
【10月更文挑战第13天】开发者如何使用云消息队列 RabbitMQ 版
655 102
|
运维 Kubernetes 监控
K8S异常诊断之俺的内存呢
K8S异常诊断之俺的内存呢
|
NoSQL Java MongoDB
MongoDB 排序
10月更文挑战第16天
437 4

热门文章

最新文章