dkron cloud native 的分布式cron服务 ,以下是一个简单的试用
环境准备
- docker-compose 文件
version: "3"
services:
cron:
image: dkron/dkron
command: agent --server --bootstrap-expect=1
volumes:
- "./dkron.data:/dkron.data"
ports:
- "8080:8080"
- "8946:8946"
试用
- 效果
- 创建job
curl localhost:8080/v1/jobs -XPOST -d '{
"name": "job1",
"schedule": "@every 10s",
"timezone": "Europe/Berlin",
"owner": "Platform Team",
"owner_email": "platform@example.com",
"disabled": false,
"tags": {
"server": "true:1"
},
"metadata": {
"user": "12345"
},
"concurrency": "allow",
"executor": "shell",
"executor_config": {
"command": "date"
}
}'
效果
说明
dkron 依赖了hashicorp 的serf 以及raft算法进行集群的管理,定时任务使用了robfig/cron,同时使用了soheilhy/cmux(功能是服务复用,具体的使用场景
结合代码学习),jordan-wright/email进行邮件发送处理,同时类似的东西还是比较都的,nodejs的Cronicle也是一个不错的选择,同时其他语言也有类似
的实现,还是比较多的
参考资料
https://github.com/distribworks/dkron
https://dkron.io/basics/getting-started/
https://github.com/jhuckaby/Cronicle