定时任务概述

简介: 定时任务是基于时间表达式调度执行的任务,适用于对账、提醒、订单超时等场景。实现方案包括单体架构的轮询、Timer、ScheduledExecutorService、Quartz、SpringTask,以及分布式架构下的TBSchedule、Elastic-Job、XXL-JOB等,解决集群重复执行、动态调度、故障转移等问题。

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

相关文章
|
6月前
|
数据采集 数据库 Python
Python异步编程入门:告别“等待”,让代码飞起来
Python异步编程入门:告别“等待”,让代码飞起来
375 100
|
机器学习/深度学习 人工智能 自然语言处理
AI产品经理的技术必修课:从工具应用到系统设计
AI产品经理的技术必修课:从工具应用到系统设计
941 84
|
6月前
|
存储 JSON API
Python轻松玩转JSON文件:读写实战指南
Python轻松玩转JSON文件:读写实战指南
376 22
|
6月前
|
安全 Unix API
告别混乱时间处理:Python中time与datetime模块的实用选择
告别混乱时间处理:Python中time与datetime模块的实用选择
415 126
|
6月前
|
API 数据安全/隐私保护 计算机视觉
用Python批量处理图片,5分钟搞定一天的工作
用Python批量处理图片,5分钟搞定一天的工作
512 128
|
6月前
|
存储 编解码 缓存
2026年上亿用户级短视频 APP 的服务器成本与架构解析
上亿用户规模的短视频 APP 需依托复杂的分布式架构支撑高并发、大流量场景,其服务器相关成本不仅包含硬件资源费用,还涉及存储、分发、安全等全链路支出。从行业实践来看,这类应用的年度服务器及配套服务成本通常达数千万元级别,其中 CDN 分发、云服务器集群、数据存储是核心开销项,以下结合技术架构与实际案例展开解析。
|
6月前
|
安全 机器人 API
WhatsApp 账号共存模式解析:如何实现手机 App 与 API 同时在线?
随着业务扩展,很多企业希望在保留 WhatsApp 手机端人工服务的同时,接入 API 实现自动化营销。本文将详解 Meta 最新的“账号共存”模式,并介绍如何通过 阿里云 Chat App 的原生集成能力,轻松实现手机 App 与 API 后台的同步协作,兼顾服务温度与运营效率。
632 1
|
6月前
|
消息中间件 负载均衡 API
微服务的世界:从零开始理解微服务架构
本文深入浅出地介绍了微服务架构,从单体架构的优缺点切入,阐述了微服务的诞生背景、核心优势与挑战,并结合电商平台和视频平台等实际案例,解析其应用场景及关键技术,如服务通信、注册发现、负载均衡等,最后通过Todo应用演示简单设计,帮助读者全面理解微服务。
250 0
|
11月前
|
前端开发 Java 关系型数据库
基于springboot的二手车交易系统
本系统基于B/S架构,采用VUE前端与SSM框架后端结合MySQL数据库,实现二手车交易管理。系统利用Java语言开发,具备良好的扩展性与稳定性,旨在提升二手交易管理效率,满足用户对信息查询与管理的需求。