之前用 cronicle ,优点是可以通过插件扩展出很多种执行器,缺点是连 docker 官方都没支持,得自己写插件实现 nodejs 调用 docker ,之前也自己搓出来了这个插件。
直到某天误操作 rm -rf 了(操作效果类似,但不是 rm -rf),懒得重新研究文档写插件了,发现了一个新的异步任务调度工具 Dagu
Dagu 本质上是一个 DAG 工具,即有向无环图调度工具,因为是 golang 搓的,它原生支持 docker 所有参数,用 yaml 定义 DAG ,然后逐个节点执行。缺点嘛,就是这东西轻量到可以称之为简陋,没有汉化,甚至没有一个 icon ,执行器方面你得把代码打包成服务(走 HTTP 触发器)或者 docker 镜像它才能调用(或者在 yaml 里搓 shell 脚本),前者内存常驻和 cronicle 其实无差了,后者还得自建 docker registry ,当然我的话是有搭建 gitea ,它本身带一个简化的软件包管理,支持 docker 镜像托管,搭配上 gitea action 自动构建镜像,用 dagu 去自动拉镜像执行还是挺舒适的。
Dagu 项目地址:
https://github.com/dagu-org/daguPS:打到这,其实如果有 gitea 了,搭一个 gitea action 让它定时执行也不是不行哈。