openjobs,Openjob 1.0.5 发布,新增 Agent

科技资讯 投稿 6300 0 评论

openjobs,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 脚本
  • Kettle,内置 Kettle 执行器
可视化运维
    任务仪表盘,丰富的任务统计和报表。
    任务历史执行记录,任务执行历史追溯。
    任务运行日志,完善的任务日志存储(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/Oracle/Postgresql/Elasticsearch)
    监控大盘
    操作记录
    查看日志堆栈
可运维
启用、禁用任务
    启用、禁用任务
    手动运行任务
    停止任务
    启用、禁用任务
    手动运行任务
    停止任务
报警监控
邮件
邮件
    邮件
    webhook
    企微
    飞书
性能
每次调度通过DB抢锁,对DB压力大
ZooKeeper是性能瓶颈
由Master节点调度,Master节点压力大。
任务采用分片算法,每个节点都可以调度,无性能瓶颈,支持无限水平扩展,支持海量任务调度。
 

更新内容

Openjob v1.0.5 新增 Agent 以及修复若干已知问题。
 
[root@openjob ~]$ java -jar openjob-agent-java-xxx.jar -h
Usage: Openjob-agent-java [-hV] [-s=<serverAddress>]
                          [--worker-app-name=<workerAppName>]
                          [--worker-heartbeat-fail-times=<heartbeatFailTimes>]
                          [--worker-heartbeat-interval=<heartbeatInterval>]
                          [--worker-host=<workerHost>]
                          [--worker-port=<workerPort>]
  -h, --help      Show this help message and exit.
  -s, --server-address=<serverAddress>
                  Server address, default is `http://localhost:8080`
  -V, --version  Print version information and exit.
      --worker-app-name=<workerAppName>
                  Application name, default is `openjob`
      --worker-heartbeat-fail-times=<heartbeatFailTimes>
                  Worker heartbeat fail times, default is `2`
      --worker-heartbeat-interval=<heartbeatInterval>
                  Worker heartbeat interval, default is `5`
      --worker-host=<workerHost>
                  Worker host, default is local IP
      --worker-port=<workerPort>
                  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
2023 年需求最大的 8 种编程语言:PHP 强劲,C/C++ 需求放缓 GPT-4 越来越笨?准确率从 97.6% 降至 2.4% MySQL 8.1 及 MySQL 8.0.34 正式发布 C# 和 TypeScript 之父宣布最新开源项目:TypeChat Meta 放大招:发布开源大语言模型 Llama 2,可免费商用 力不从心,React 核心开发者 Dan Abramov 宣布从 Meta 离职 历时五年,Cython 3.0 正式发布 马斯克宣布 Twitter 将改名为 X,并更换 Logo 不想搬砖,又想完成需求?也许这个 5k 星的 GitHub 开源项目能帮上忙 - MetaGPT 苹果悄悄开发 Apple GPT

编程笔记 » openjobs,Openjob 1.0.5 发布,新增 Agent

赞同 (35) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽