您的位置:首页 > IT > 正文

Openjob 1.0.4 发布,支持 Kettle/Shell 环球今亮点

来源:开源中国     时间:2023-07-05 10:26:15


(资料图)

什么是 Openjob?

Openjob 基于Akka架构的新一代分布式任务调度框架。支持多种定时任务、延时任务、工作流设计,采用无中心化架构,底层使用一致性分片算法,支持无限水平扩容。 完善的任务日志存储,支持 H2/Mysql/oracle/Postgresql/Elasticsearch 任务运行堆栈功能可详细记录任务运行过程,帮助管理员快速排查问题 报警与权限功能也极为重要,它提供任务事件监控报警,以及详细的报警历史记录 管理员可以使用企业微信、飞书、webhook等渠道接收报警信息。 命名空间方式设计,支持按钮级别权限管理,轻松应对复杂的项目管理。 支持多种编程语言,如 Java,Go,PHP 和 Python,各个语言的支持度都非常友好。 如果您正在寻找一款高性能的分布式任务调度框架,支持定时任务、延时任务、轻量级计算、工作流编排,并且支持多种编程语言,那么 Openjob 肯定是不二之选。

特性

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 实现分布式数据计算。对于复杂的任务流或任务编排场景可以使用可视化工作流,轻松解决。

开源对比

项目QuartzElastic-JobXXL-JOBOpenjob
定时调度 Cron Cron Cron 定时任务 秒级任务 一次性任务 固定频率
延时任务 不支持 不支持 不支持 基于 Redis 实现分布式高性能延时任务,实现定时与延时一体化
任务编排 不支持 不支持 不支持 通过图形化编排任务(workflow)
分布式计算 不支持 静态分片 广播 广播 Map/MapReduce 多语言静态分片
多语言 Java Java 脚本任务 Java 脚本任务 Java Go(Gin、beego) PHP(Swoft) Python(Agent) 脚本任务 HTTP任务
可视化 历史记录 运行日志(不支持存储) 监控大盘 历史记录 运行日志(支持 H2/Mysql/Oracle/Postgresql/Elasticsearch) 监控大盘 操作记录 查看日志堆栈
可运维 启用、禁用任务 启用、禁用任务 手动运行任务 停止任务 启用、禁用任务 手动运行任务 停止任务
报警监控 邮件 邮件 邮件 webhook 企微 飞书
性能 每次调度通过DB抢锁,对DB压力大 ZooKeeper是性能瓶颈 由Master节点调度,Master节点压力大。 任务采用分片算法,每个节点都可以调度,无性能瓶颈,支持无限水平扩展,支持海量任务调度。

更新内容

Openjob v1.0.4 数据源和日志存储新增 Oracle/Postgres,同时新增 Kettle/Shell 调度以及修复若干已知问题。 新增[#114] 支持 Oracle [#114] 支持 Postgres [#114] 日志存储支持 Oracle [#114] 日志存储支持 Postgres [#114] Shell 调度 [#114] Kettle 调度 修复[#114] 修复登录首页错误 [#114] 修复 favicon.ico [#114] 修复 Worker 注册问题 [#114] 修复终止任务问题 优化[#114] 屏蔽延时任务系统参数修改 [#114] 优化登录错误提示 [#114] 优化 H2 依赖 [#114] 优化数据库索引

更多内容

官网: https://openjob.io Github: https://github.com/open-job/openjob 在线体验: https://demo.openjob.io

- openjob

- openjob.io

相关文章