Java 21 scheduler / UTC cursor / Netty executor / JDBC HA
一个轻量级、边界清晰的定时调度服务。它把任务定义、调度游标、执行器连接、分片租约和运维 API 拆成可理解的模块,让调度系统在正确的时间点亮正确的任务。
Firefly 可以作为业务进程内的轻量调度器,也可以作为独立调度中心运行。核心模块不绑定 Spring、HTTP、数据库或特定通信协议,外部能力通过 integration、transport、store 和 plugin 自然扩展。
cron、fixed-rate、misfire、并发策略、任务级时区都放在纯 Java core 中,减少运行时框架对语义的影响。
业务服务通过 Netty 主动注册到 gateway,不需要业务侧暴露公网端口,适合微服务和容器环境。
任务定义、运行游标、shard lease、execution 和 outbox 都可落库,支持节点重启、接管和审计。
本地可以用 memory 或 H2 快速验证;生产可以切换到 PostgreSQL 和 MySQL JDBC 存储,并按 api、gateway、scheduler 三类角色拆分节点。
任务显式声明 IANA ZoneId,运行态统一使用 UTC Instant,避免默认时区和 DST 规则把任务悄悄带偏。
scheduler-core 不依赖 Web 框架、IOC、数据库或监控系统,集成层可以替换,调度语义保持干净。
Admin UI、Admin HTTP API、Prometheus 指标和审计日志形成独立运维面,方便查看任务、节点、执行器和插件状态。
Firefly 不追求覆盖所有工作流场景,它更适合 Java 业务系统里的轻量调度中心、远程执行器管理、任务级时区正确性和可演进的模块边界。
| 维度 | Firefly | 传统任务调度平台 | 工作流编排系统 |
|---|---|---|---|
| 定位 | 轻量任务调度服务 | 偏运维平台和任务管理 | 复杂 DAG 和数据流编排 |
| 集成方式 | 嵌入式、Spring Boot、独立 Server、远程 Executor | 通常以中心服务和执行器 Agent 为主 | 需要按工作流模型改造任务 |
| 核心边界 | 纯 Java core,插件和传输层独立 | 平台能力与核心调度常耦合 | 调度、依赖、状态机深度绑定 |
先跑通本地 Server 和 Admin UI,再接入 Spring Boot 或 Netty 远程执行器。