Openjob 1.0.2 重磅发布,新一代任务调度框架
什么是 Openjob?
Openjob 基于Akka架构的新一代分布式任务调度框架。支持多种定时任务、延时任务、工作流设计,采用无中心化架构,底层使用一致性分片算法,支持无限水平扩容。
特性
Openjob 除了支持基本的任务调度,还提供延时任务、分布式计算以及工作流。
定时任务
- • 普通定时任务,支持Unix Crontab 表达式。
- • 秒级定时任务,适用于对实时性要求比较高的业务,例如执行间隔为3秒的定时调度任务。
- • 固定频率任务,Crontab 必须被 60 整除,不支持其它数量级时间间隔的任务,一般用于定期轮询场景。
延时任务
- • 基于 Redis 实现高性能延时任务,一体化解决定时任务和延时任务,同时提供丰富的报表与统计。
分布式计算
- • 单机,随机选择一台机器完成任务执行。
- • 广播,应用所有机器同时执行且等待全部结束。
- • Map模型,类似于 Hadoop 的Map。只需简单实现一个Map方法,就可以将海量数据分布到多台机器上执行。
- • MapReduce模型,MapReduce模型是Map模型的扩展。所有子任务执行完成后执行Reduce方法,可以在Reduce方法中处理任务运行结果和数据。
- • 静态分片,类似Elastic-Job模型,控制台配置分片数,可以按照分片分配到不同的客户端执行,支持多语言版本。
执行器
- • 普通执行器,普通函数或类的方式执行任务
- • HTTP,定时请求固定的地址。
- • Shell,定时执行 shell 脚本
可视化运维
- • 任务仪表盘,丰富的任务统计和报表。
- • 任务历史执行记录,任务执行历史追溯。
- • 任务运行日志,完善的任务日志存储(H2/Mysql/Elasticsearch)
- • 任务运行堆栈,详细记录任务运行堆栈信息。
报警与权限
- • 提供任务事件监控报警,以及详细的报警历史,同时支持企业微信、飞书、webhook触达通知。
- • 命名空间方式设计,支持按钮级别权限管理,轻松应对复杂的项目管理。
多语言
- • Java 及其衍生框架,原生支持。
- • Go 支持 go mod 方式安装依赖,以及常见框架整合(Gin)。
- • PHP 支持通过 Golang agent 方式执行 PHP 任务。基于 Swoole 衍生框架(Swoft),支持 Composer 安装依赖直接使用。
- • Python 支持通过 Golang agent,方式执行 Python 任务。
适用场景
Openjob 适用于业务有一定的定时任务需求,非常适用于定时任务与延时任务一体化解决场景,比如每天凌晨数据清理、生成数据报表。同时适用于轻量级计算,可以使用 Map/MapReduce 实现分布式数据计算。对于复杂的任务流或任务编排场景可以使用可视化工作流,轻松解决。
开源对比
项目 | Quartz | Elastic-Job | XXL-JOB | Openjob |
定时调度 | Cron | Cron | Cron | * 定时任务 * 秒级任务 * 一次性任务 * 固定频率 |
延时任务 | 不支持 | 不支持 | 不支持 | 基于 Redis 实现分布式高性能延时任务,实现定时与延时一体化 |
任务编排 | 不支持 | 不支持 | 不支持 | 通过图形化编排任务(workflow) |
分布式计算 | 不支持 | 静态分片 | 广播 | * 广播 * Map/MapReduce * 多语言静态分片 |
多语言 | Java | * Java * 脚本任务 | * Java * 脚本任务 | * Java * Go(Gin、beego) * PHP(Swoft) * Python(Agent) * 脚本任务 * HTTP任务 |
可视化 | 无 | 弱 | * 历史记录 * 运行日志(不支持存储) * 监控大盘 | * 历史记录 * 运行日志(支持 H2/Mysql/Elasticsearch) * 监控大盘 * 操作记录 * 查看日志堆栈 |
可运维 | 无 | 启用、禁用任务 | * 启用、禁用任务 * 手动运行任务 * 停止任务 | * 启用、禁用任务 * 手动运行任务 * 停止任务 |
报警监控 | 无 | 邮件 | 邮件 | * 邮件 * webhook * 企微 * 飞书 |
性能 | 每次调度通过DB抢锁,对DB压力大 | ZooKeeper是性能瓶颈 | 由Master节点调度,Master节点压力大。 | 任务采用分片算法,每个节点都可以调度,无性能瓶颈,支持无限水平扩展,支持海量任务调度。 |
更新内容
Openjob v1.0.2 版本新增任务仪表盘、任务数据自动清理、日志存储支持 Elasticsearch以及修复若干已知问题。
新增
- • [#95] 新增 Elasticsearch7 日志存储
- • [#98] 首页新增任务和系统数据
- • [#99] 新增任务实例、延时实例、集群节点、Server 节点以及日志清理
修复
- [#95] 修复管理后台接口请求域名
- [#96] 修复分片算法
- [#99] 修复延时任务缓存
- [#99] 修复延时任务执行时间问题
- [#101] 修复同一个机器多个客户端 Akka 持久化冲突问题
优化
- [#97] Bean Mapper
- [#99] 优化应用注册
更多内容
- 官网: https://openjob.io
- Github: https://github.com/open-job/openjob
- Gitee: https://gitee.com/openjob/openjob
- 在线体验: https://demo.openjob.io

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Kiwi TCMS 12.4 发布,开源测试管理系统
Kiwi TCMS 是领先的开源测试管理系统,用于手动和自动测试。它的特点是集成 Bug 跟踪器、搜索页面、强大的访问控制、测试自动化框架插件、可视化报告和丰富的 API 层。 Kiwi TCMS 12.4 现已发布,此版本包含与安全相关的更新、一般改进和新翻译。自 Kiwi TCMS 12.1 以来的变化: 安全 改进了上传潜在危险文件时的检查。修复CVE-2023-33977 改进 将 django 从 4.2.1 更新到 4.2.2 将 jira 从 3.5.0 更新到 3.5.1 为 Docker 容器添加 HEALTHCHECK 命令 在 Telemetry 页面中添加按 TestRun 摘要搜索。修复Issue #3190 使电子邮件通知触发时更加清晰。关闭Issue #3212 改进问题跟踪器配置运行状况检查的消息传递。参考Issue #3141,关闭Issue #3191,关闭Issue #34 重构 将 node_modules/eslint 从 8.40.0 更新到 8.42.0 将 node_modules/eslint-plugin-n 从 15.7.0 更新到...
- 下一篇
百度推出 AI 编程助手
6月6日,在文心大模型技术交流会(成都)上,百度智能云推出了基于大模型的“Comate”代码助手,并正式开放邀请测试。 据介绍,借助文心大模型的理解、推理能力,“Comate”可实现代码的快速补齐、自然语言推荐代码、自动查找代码错误,全面提升开发者研发效率。未来,开发者可以通过插件等形式,在主流开发软件中使用“Comate”代码助手。 ▲ Comate 多行代码推荐 百度智能云方面表示,辅助代码撰写是第一阶段的主要产品功能,并且当前“Comate”代码助手已经可以部分实现通过自然语言的方式写代码,彻底改变人机交互方式和程序开发模式。百度内部人士表示,第二阶段,“Comate”将实现在特定领域、场景的自然语言代码生成,第三阶段将实现全领域的自然语言开发。 百度集团副总裁侯震宇表示,“Comate”代码助手是基于大模型打造的新一代编码辅助工具,已经在百度内部进行了大量测试。测试结果显示,在“Comate”辅助编写的代码中,近50%的建议代码被开发者采纳,目前在百度内部已经广泛应用到各类产品开发中。 据称“Comate”目前已经覆盖了30余种编程语言,尤其在 C/C++、Python、Jav...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Mario游戏-低调大师作品