XTimer定时微服务项目
Xtimer定时微服务
项目背景
在学校社团中,有给社团成员发送活动通知的任务需求
有定期执行某项任务的需求,比如每周末举办一次线下活动,每个月举行一次团建
再比如,我有一个任务需要设置定时发布
定时微服务调研对比
| 方案 | 不足点 |
|---|---|
| JavaTimer | 单线程,任务堆积 |
| RocketMq | 可以作为本项目的优化 |
| xxl-job | 对于简单的定时任务需求过于复杂、可能需要额外开发和维护成本 |
| Quartz | 对于简单的定时任务需求过于复杂、资源消耗较大,特别是在大规模任务调度时。 |
本项目特点:功能聚焦,接入轻量,维护成本低
架构设计方法论
架构设计
存储优化
- 全表扫描
- 基于redis中ZSET排序扫描,时间复杂度O(n)->O(log n)
- 横向分治,通过时间范围分片,减少查询涉及的任务数量

- 纵向分治,通过定时任务分桶,提高并发度

定时任务调度流程
一句话总结:服务架构: 3 个模块 + 2 个协程池
定时任务生成流程
一句话总结:定时任务创建与 webServer 和 migrator 2 个模块有关

定时微服务项目,分布式架构下的定时器
浙公网安备 33010602011771号