Openjob - 1.0.5 发布,新增 Agent - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jxia
V2EX    Java

Openjob - 1.0.5 发布,新增 Agent

  •  
  •   jxia 2023-07-24 09:30:38 +08:00 1399 次点击
    这是一个创建于 814 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    开源对比

    项目 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` 

    新增

    修复

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

    优化

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

    更多内容

    目前尚无回复
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3899 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 00:08 PVG 08:08 LAX 17:08 JFK 20:08
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86