定时任务概述

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

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

热门文章

最新文章