定时任务概述

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

相关文章
|
8月前
|
存储 负载均衡 算法
负载均衡算法
本文介绍了多种负载均衡算法:随机、加权随机、轮询、加权轮询、最小活跃数、源地址哈希及一致性哈希。适用于不同场景,如性能均等或差异服务器、需保持会话一致等,提升系统稳定性与负载能力。
|
8月前
|
SQL 安全 关系型数据库
了解SQL注入
SQL注入是利用Web应用输入验证缺陷,将恶意SQL代码植入数据库查询的攻击方式。可导致身份绕过、数据泄露、篡改甚至系统沦陷。常见于登录框等动态SQL构造场景,攻击者通过特殊字符(如单引号、注释符)改变SQL逻辑。防御需结合输入验证、参数化查询及错误信息管控,从应用与网络层协同防护。
|
8月前
|
XML JSON Java
什么是RESTful
RESTful是一种基于资源的API设计规范,通过统一的HTTP方法(GET/POST/PUT/DELETE)对资源进行操作,提升接口的标准化与可维护性。它强调URI代表资源、使用名词而非动词、杜绝行为化路径,确保增删改查逻辑清晰、结构统一,便于理解和扩展,是现代Web API设计的最佳实践之一。
|
5月前
|
人工智能 自然语言处理 API
OpenClaw定时任务全攻略:阿里云/本地部署、API配置+Cron实战与多场景自动化
2026年,OpenClaw(曾用名Clawdbot)的定时任务功能已成为实现自动化办公、信息同步的核心能力之一。通过内置的Cron调度引擎、Heartbeat心跳机制,结合灵活的多端推送通道,用户可轻松实现每日财经新闻推送、定期报告生成、系统巡检等自动化场景,无需手动触发,让AI智能体真正成为“全天候高效助手”。本文结合2026年最新技术实践,完整拆解阿里云及本地MacOS/Linux/Windows11部署OpenClaw的详细流程,详解阿里云千问与免费大模型API配置方法,深度解析定时任务核心机制与实战案例,并附上全场景常见问题解答,所有代码命令可直接复制执行,助力用户快速搭建个性化定时
2684 2
|
4月前
|
人工智能 语音技术 开发工具
AI电影解说:基于narrator-ai-cli与 Skill工作流深度实操与解读
本文详解如何用开源命令行工具 `narrator-ai-cli` 与 `narrator-ai-cli-skill`,构建本地优先、Agent 驱动的电影解说工作流:从零安装、配置、单条出片,到接入小龙虾/ Windsurf 等 Agent,支持爆款风格学习、TTS停顿控制、语音克隆及团队配额管理——全程不上传原片,兼顾隐私、效率与可控性。(239字)
|
8月前
|
Kubernetes IDE 应用服务中间件
2.部署篇(开发部署)
本文介绍如何将SpringCloud应用部署到Kubernetes云端,基于EDAS实现快速上云。涵盖集群导入、应用初始化及通过IDE插件高效部署,助力开发者提升发布效率。
|
8月前
|
Java Maven Spring
SpringBoot打包
本项目通过Maven打包为单一可执行JAR,内置配置文件与依赖,使用Spring Boot插件指定主类并repackage。执行`mvn clean package`构建后,通过`java -jar`运行(前台/后台),`kill -9 pid`停止服务。也可将JAR、依赖与配置分离部署,提升灵活性与维护性。(238字)
|
8月前
|
SQL 存储 NoSQL
简述关系型与非关系型数据库的区别
关系型数据库基于表结构,支持SQL和事务,易于维护但读写性能差、灵活性不足;非关系型数据库格式灵活、速度快、成本低,适用于高并发场景,但缺乏SQL支持与事务机制,复杂查询较弱。
|
8月前
|
存储 关系型数据库 索引
聚簇索引及其优缺点
聚簇索引是一种数据存储方式,InnoDB通过主键构建B+树组织数据,叶子节点即数据页。若无主键,则选非空唯一索引或隐式创建主键。辅助索引(二级索引)需两次查找:先查主键值,再查数据行。优点是查询快,尤其主键排序与范围查询;缺点是插入依赖顺序,更新主键代价高,且易引发页分裂。
|
8月前
|
Web App开发 前端开发 JavaScript
SpringBoot跨域处理
本文介绍了跨域(CORS)的产生原因及解决方案。当协议、域名、端口任一不同,即为跨域。浏览器因同源策略限制,默认阻止跨域请求。通过@CrossOrigin注解、全局配置WebMvcConfigurer或自定义Filter添加响应头,可实现跨域资源共享,允许指定外域访问资源,解决前端请求被阻问题。

热门文章

最新文章