Openjob - 1.0.5 发布,新增 Agent

查看 16|回复 0
作者:jxia   
Openjob 1.0.5 发布,新增 Agent
什么是 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 实现分布式数据计算。对于复杂的任务流或任务编排场景可以使用可视化工作流,轻松解决。
    开源对比
    [td]项目[/td]
    [td]Quartz[/td]
    [td]Elastic-Job[/td]
    [td]XXL-JOB[/td]
    [td]Openjob[/td]
    定时调度
    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.5 新增 Agent 以及修复若干已知问题。
    [[email protected] ~]$ java -jar openjob-agent-java-xxx.jar -h
    Usage: Openjob-agent-java [-hV] [-s=]
                              [--worker-app-name=]
                              [--worker-heartbeat-fail-times=]
                              [--worker-heartbeat-interval=]
                              [--worker-host=]
                              [--worker-port=]
      -h, --help      Show this help message and exit.
      -s, --server-address=
                      Server address, default is `http://localhost:8080`
      -V, --version   Print version information and exit.
          --worker-app-name=
                      Application name, default is `openjob`
          --worker-heartbeat-fail-times=
                      Worker heartbeat fail times, default is `2`
          --worker-heartbeat-interval=
                      Worker heartbeat interval, default is `5`
          --worker-host=
                      Worker host, default is local IP
          --worker-port=
                      Worker port, default is `25588`
    新增
  • [#agent] 新增 Agent

    修复
  • [#137] 客户端心跳异常退出
  • [#137] unix 平台终止 Kettle

    优化
  • [#139] 任务实例状态上报
  • [#139] 延时实例状态上报

    更多内容
  • 官网: https://openjob.io
  • Github: https://github.com/open-job/openjob

  • 在线体验: https://demo.openjob.io
  • openjob
  • openjob.io
  • QQ 交流群: 849015265
  • 您需要登录后才可以回帖 登录 | 立即注册

    返回顶部