定时任务概述

简介: 定时任务是基于时间表达式调度执行的任务,适用于对账、提醒、订单超时等场景。实现方式包括单体架构的轮询、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

相关文章
|
4月前
|
XML JSON Java
什么是RESTful
RESTful是一种基于资源的API设计规范,通过统一的HTTP方法(GET/POST/PUT/DELETE)对资源进行操作,提升接口的标准化与可维护性。它强调URI代表资源、使用名词而非动词、杜绝行为化路径,确保增删改查逻辑清晰、结构统一,便于理解和扩展,是现代Web API设计的最佳实践之一。
|
4月前
|
SQL 安全 关系型数据库
了解SQL注入
SQL注入是利用Web应用输入验证缺陷,将恶意SQL代码植入数据库查询的攻击方式。可导致身份绕过、数据泄露、篡改甚至系统沦陷。常见于登录框等动态SQL构造场景,攻击者通过特殊字符(如单引号、注释符)改变SQL逻辑。防御需结合输入验证、参数化查询及错误信息管控,从应用与网络层协同防护。
|
4月前
|
存储 负载均衡 算法
负载均衡算法
本文介绍了多种负载均衡算法:随机、加权随机、轮询、加权轮询、最小活跃数、源地址哈希及一致性哈希。适用于不同场景,如性能均等或差异服务器、需保持会话一致等,提升系统稳定性与负载能力。
|
1月前
|
数据采集 人工智能 数据可视化
《基于 DeepSeek 百万token上下文的实证研究:全窗口真实工程压力测试与统计分析》
本项目基于 DeepSeek 于 2026 年 2 月推出的 “新长文本模型”(上下文窗口扩展至1,000,000 tokens,API 端仍保持 V3.2 版本),通过构建非AI/IT领域的完整项目流程,进行了全程、全负载实证工程测试。在单一连续上下文中实现了端到端的闭环。
|
1月前
|
机器学习/深度学习 算法 安全
打破真题依赖!微软、清华联合开源 X-Coder:全合成数据激发代码大模型推理潜力
微软与清华联合推出X-Coder系列模型,首创纯合成数据训练范式,在不使用任何真实竞赛题的前提下,仅用7B参数即在LiveCodeBench v5上达62.9%准确率,超越更大规模依赖真实数据的模型。项目已开源模型与数据集。(239字)
259 11
|
4月前
|
关系型数据库 应用服务中间件 Nacos
Nacos配置中心
本章介绍Nacos配置中心的实现,涵盖配置管理、热更新、共享配置及优先级规则,并演示Nacos集群搭建与高可用部署,帮助掌握微服务环境下配置统一管理的核心技能。
|
4月前
|
存储 关系型数据库 索引
聚簇索引及其优缺点
聚簇索引是一种数据存储方式,InnoDB通过主键构建B+树组织数据,叶子节点即数据页。若无主键,则选非空唯一索引或隐式创建主键。辅助索引(二级索引)需两次查找:先查主键值,再查数据行。优点是查询快,尤其主键排序与范围查询;缺点是插入依赖顺序,更新主键代价高,且易引发页分裂。
|
4月前
|
存储 缓存 Java
SpringBoot自动装配机制
本章深入解析SpringBoot自动装配机制,从@SpringBootApplication注解入手,剖析其组合注解原理。重点讲解@EnableAutoConfiguration如何通过@AutoConfigurationPackage实现包扫描、通过AutoConfigurationImportSelector加载spring.factories中的自动配置类,结合@Conditional条件注解实现智能化配置。同时解析@ComponentScan组件过滤机制及自定义排除方式,揭示SpringBoot“约定优于配置”的底层实现逻辑。(238字)
|
4月前
|
SQL 存储 NoSQL
简述关系型与非关系型数据库的区别
关系型数据库基于表结构,支持SQL和事务,易于维护但读写性能差、灵活性不足;非关系型数据库格式灵活、速度快、成本低,适用于高并发场景,但缺乏SQL支持与事务机制,复杂查询较弱。
|
4月前
|
JSON 安全 Java
SpringBoot鉴权
本文介绍基于Spring Security与JWT实现客户端Token认证的完整方案,涵盖登录鉴权、Token生成与验证、角色权限控制等细节。通过自定义过滤器与认证组件,结合Redis或数据库可扩展实现高效安全的无状态认证体系,适用于Spring Boot微服务架构。

热门文章

最新文章