Golang Go语言中使用Crocodile实现的分布式任务调度系统已支持多调度节点
Golang Go语言中使用Crocodile实现的分布式任务调度系统已支持多调度节点
基于 Golang 开发的分布式任务调度系统,支持 http 请求、运行 golang 、python 、shell 等调度任务
你可以在这里看到代码地址
你可以在这看看截屏展示
<details> <summary>点击我</summary></details>
这是一些特性介绍
- 在 Web 节点对任务进行增加、修改、删除、克隆、运行任务、终止等操作
- 实时查看正在运行的任务和任务的实时日志
- 多种任务类型:
- 执行
http
请求任务 - 运行
shell
、python
、golang
代码(当然其他语言也可以支持,如需要请提出)
- 执行
- 父、子任务:
当设置了父任务或者子任务后,先会运行父任务
->主任务
->子任务
,任意任务出错后会立即中断整个流程,还可以设置父任务或子任务并行
或者串行
运行 - 调度算法:
支持四种调度算法随机、轮训、Worker 权重、Worker 最少任务数来调用 Worker 运行任务, - 自定义报警策略:
可以设置当任务成功
、失败
、运行完成
发送通知给多个用户
设置任务的返回码或者返回内容来比较任务的实际返回码或者返回内容是否相同来判断任务运行成功或者,code 任务默认为 0,http 任务默认为 200 - 主机组:
一个任务只可以绑定到任意一个主机组,任务的运行会通过任务的路由策略来选取这个主机组中的一个任务来运行任务 - 主机:
一个主机组可以绑定多个主机,主机是实际运行任务的节点,注册后调度中心自动发现 - 安全策略
证书加密加密通讯数据
访问令牌 - 任务的日志管理,清理日志
- 报警通知支持平台
- 邮件
- 企业微信
- 钉钉
- Slack Channel
- Telegram Bot
- WebHook URL
- 详细的任务审计功能
对用户的所有对数据改变的操作都会记录下来 - 权限控制
有三种用户类型- 管理员
拥有所有操作权限, - 普通用户 可以创建新的任务、主机组,只可以自已创建的任务或主机组进行操作,不能查看审计记录、所有用户
- 访客
只有查看的权限、无任何操作修改权限,不能查看审计记录、所有用户
- 管理员
- 多调度中心来避免单点故障
- 由于多调度中心所以暂时移除了对 sqlite3 的支持
如果你想看开发进度的话可以看看这里
Trello_Crocodile
既然看到这里了那我就恬不知耻求职了,想找一个 Golang 后端开发的工作,如果你有合适的工作介绍给我可以能不能留下一个联系方式或 jd,非常感谢。👀
更多关于Golang Go语言中使用Crocodile实现的分布式任务调度系统已支持多调度节点的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
很好的项目,支持一下!浏览了文档,也看了 trello (在 trello 中没有找到设计图),有个疑问想请教一下:
项目是如何实现分布式调度的?具体指的是一致性问题、幂等、failover 等。项目中似乎也没有用到 zookeeper 或 etcd,不知道具体是怎么实现的呢?谢谢。
更多关于Golang Go语言中使用Crocodile实现的分布式任务调度系统已支持多调度节点的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
很好的项目,特别是任务调度这块的设计比 gocro 功能要完善一些
几年经验?坐标哪里
支持一下
加油,干死 Java
哈哈 玩笑开大了🐶,虽然不太了解,但还是要尊敬的
谢谢鼓励
谢谢
sz 一年半
照这个进度抢 java 饭碗只是时间的问题了
主要是基于 redis 实现的,在每次调度前,调度节点会同时获取一个 redis 锁,然后抢到的才会继续运行,调度图还没来得及画,不过这个周末就把调度图画出来
各有特点吧,还不至于抢 java 的饭碗,哈哈哈
建议 support docker deploy
部署之后提示 2020-04-18T11:13:42.021+0800 error schedule/grpc.go:248 registry client failed {“error”: “rpc error: code = Unknown desc = 系统还未安装,请等待安装后再进行操作”}
支持,加 star
支持一下
借楼,安利下我的项目,不支持 redis,mysql,但却有高可用,和楼主的差别还是比较大的。
不支持什么调度算法。没有 http 调度。但也有微信,钉钉。钉钉要下周发布。请坐等 1—3 天。
开源免费,跨平台的 devops 批量运维工具《卡死你 3000 》简介
https://www.toutiao.com/i6808017697528349191/
===============================
《卡死你 3000 》运行命令详解
https://www.toutiao.com/i6812528573992141320
===============================
遇 devops 事不决,问《卡死你 3000 》。jenkins 搭配《卡死你 3000 》,能解决 99%的 devops 事。
自动,批量运维,基于脚本,它比 ansible 好用 10 倍。
开源+免费+跨平台的 devops 批量运维系统《卡死你 3000 》,了解一下:
https://gitee.com/chuanjiao10/kasini3000
https://gitee.com/chuanjiao10/kasini3000_agent_linux
卡死你 3000 官方技术支持群。qq 群:700816263
没有 web,也不支持用户管理。但却有 [表情包,斗图乐] 功能。
记着点 star 哈
楼主,已经 star,
如果你的项目有文档翻译方面的需求,可以尝试一下: www.breword.com
我做这个网站主要就是为了解决开源项目文档翻译方面的问题。
目前提供以下 features:
1. 机器预先翻译
2. 可视化编辑器
3. 协作翻译、审校
4. 自动监测文档更新
5. 支持导出所有翻译文档
希望可以帮到你。(曾经做过开源项目,项目庞大之后,深知文档维护的痛苦)
这个看着很棒👍👍
谢谢,使用中遇到问题,或者有其他建议,可以联系我: [email protected], 希望咱们可以一起助力国内的开源事业越来越蓬勃发展。加油💪
楼主这样的目录架构 docker 化的话,可执行文件打包略大,web,调度器,work 其中一个修改就需要重新打包,耦合了。
确实,我在 mac 环境打包出来 50m,当初是想着生成一个文件,所以才把这些打包到一起了,方便管理
不过改造下就好了,把 core/cmd 下的三个文件重构成 2 个,把 master 和 work 解耦。最好再把 web 服务和调度器再拆分下,二者通过 rpc 通信。这样子,web api,调度器,worker 完全解耦了,任意水平扩展了
这样也行,工作量不大,web 的话如果想重新部署到另外的地方可以直接把前端代码编译就可以了,不过我不太喜欢这种分的太多,感觉太麻烦了,哈哈。
嘿嘿,是呀,不过不是大佬,哈哈
跟我们开发的爬虫管理平台有异曲同工之妙,crawlab,同样是用 golang 写的
它比 ansible 好用 10 倍。??怎么得出这个结论的
1 去项目主页看特性。
2 学用,自己体会。
3 我有一个横向 excel 对比表,对比各种运维工具,不过这里发不上来。
看过很棒,star 很多(羡慕)
很棒的项目,给予我们用的任务,提一下一点小建议
是不是应该引入 DAG 的概念,或者父子任务就是这个,但关系却不是很明显?
[运行 shell 、python 、golang 代码(当然其他语言也可以支持,如需要请提出)] ,是否不应该停留在语言层面,应该把这些看成一个执行器,PythonOperation,GolangOperation 等等,这样的好处是能够用任意语言实现同样的接口 /方法就能调度,这样最大的好处是有利于用户插件的开发。
仅仅是我使用任务调度框架的一点点小经验,可能有点不实用,见谅~~~
感谢建议,我会好好考虑😃
已经 star,感谢。能否增加任务分组和批量启停功能?还有就是 http api 控制?
这两个功能可以考虑。http api 就是使用 api 进行一些操作吧,我在接口处加了 swag 的文档,使用 apihost/swagger/index.html 就可以看到这些接口
针对您提到的“Golang Go语言中使用Crocodile实现的分布式任务调度系统已支持多调度节点”这一话题,以下是我的专业回复:
Crocodile确实是一个基于Golang开发的强大分布式任务调度系统,其支持多调度节点的特性极大地提升了任务调度的灵活性和可靠性。
Crocodile通过采用微服务架构模式,实现了多调度中心和多Worker节点的部署与扩展。这种设计不仅提高了系统的整体稳定性和可用性,还为未来的功能迭代提供了极大的便利。多调度节点的支持使得系统能够更高效地处理大量任务,同时保证任务的实时性和准确性。
此外,Crocodile还支持多种任务类型,包括HTTP请求、Shell脚本、Python、Golang等,能够满足不同开发和运维需求。其丰富的调度算法,如随机、轮询、按权重、最少节点数等,也提供了灵活的任务分配策略。
对于任务管理,Crocodile提供了直观的Web界面,用户可以通过该界面轻松添加、修改、删除任务,并实时查看任务日志和状态。同时,系统还支持自定义报警策略和账户权限管理等功能,进一步增强了系统的安全性和可控性。
综上所述,Crocodile是一个功能全面、性能卓越的分布式任务调度系统,值得在Go语言开发环境中广泛应用。