java 定时任务创建/管理/调度/分布式/弹性
定时任务管理原理
小顶堆 —— 构建/增加/删除、时间/空间复杂度、作用
时间轮询算法 —— 分层时间轮(cron)
分层时间轮
- 使用多个不同时间维度的轮
- 天轮:记录几点执行
- 月轮:记录几号执行
- 月轮遍历到了,将任务取出放到天轮里,即可实现几号几点执行
API/框架
小于 1 分钟
Stay hungry, stay foolish 🍎
java 定时任务创建/管理/调度/分布式/弹性
小顶堆 —— 构建/增加/删除、时间/空间复杂度、作用
时间轮询算法 —— 分层时间轮(cron)
分层时间轮
Quartz 由 OpenSymphony 开源组织发起的项目,该项目 2009 年被 Terracotta 收购。 Quartz 完全由 Java 编写, 专注于 “任务调度库”(job scheduling) 功能搭建,可以用来管理上万个 jobs 复杂程序。
对于 JDK validation,Spring 做了封装 spring-boot-starter-validation
,引用于如 spring-boot-starter-web
项目中。
常见日志框架:
java.util.logging
—— 2002 年,Oracle 推的日志门面(facade)commons-logging.jar
) —— 2003 年, apache 的日志门面"最早" 的日志框架
注意
该日志框架已处于日落生命周期中。
Apache Log4j2 是对 Log4j 的升级版本,参考了 logback 的设计并修复了一些问题。主要提升有:
目前(2024 年 5 月 2 日)主流日志框架之一。
Java EE 规范中用接口定义了 Java Bean 的校验方式,即 Java Bean Validation。
相关信息
常用的 Java EE 规范接口在 jdk 的 javax 包下,如: