夏溪辰的博客

xiaxichen's blog

golang 任务调度系统

2023-12-03

golang 调度系统

distributedSchedulingTaskSystem

分布式调度系统

架构图

Y3tL7D.png

主集群功能

任务管理HTTP接口:增删改查
任务日志HTTP接口:查看任务执行历史
任务控制HTTP接口:提供强制结束任务的接口

woker集群功能

任务同步:监听etcd中/cron/jobs/目录变化
任务调度:基于cron表达式计算,触发过期任务
任务执行:协程池并发执行多任务,基于etcdf分布式锁抢占
日志保存:捕获任务执行输出,保存到MongoDB

web页面

Y3tXAe.png

master实现

Y3tbnK.png

worker实现

Y3tq0O.png

启动

首先启动etcd集群(单机也可)和mongo;
其次配置master/main下的配置文件和woker/main下的配置文件;

#master节点
#进入master/main 
go run main.go
#进入worker/main
go run main.go