写点什么

Openjob 1.0.2 重磅发布,新一代分布式任务调度框架

作者:stelin
  • 2023-06-08
    四川
  • 本文字数:1230 字

    阅读完需:约 4 分钟

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

开源对比

更新内容

Openjob v1.0.2 版本新增任务仪表盘、任务数据自动清理、日志存储支持 Elasticsearch 以及修复若干已知问题。



新增


  • [#95] 新增 Elasticsearch7 日志存储

  • [#98] 首页新增任务和系统数据

  • [#99] 新增任务实例、延时实例、集群节点、Server 节点以及日志清理


修复


  • [#95] 修复管理后台接口请求域名

  • [#96] 修复分片算法

  • [#99] 修复延时任务缓存

  • [#99] 修复延时任务执行时间问题

  • [#101] 修复同一个机器多个客户端 Akka 持久化冲突问题


优化


  • [#97] Bean Mapper

  • [#99] 优化应用注册

更多内容

用户头像

stelin

关注

还未添加个人签名 2018-06-27 加入

还未添加个人简介

评论

发布
暂无评论
Openjob 1.0.2 重磅发布,新一代分布式任务调度框架_分布式架构_stelin_InfoQ写作社区