Openjob 1.0.5 发布,新增 Agent

梦见你的名字  金牌会员 | 2023-7-24 10:29:14 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 864|帖子 864|积分 2592

什么是 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
定时调度CronCronCron

  • 定时任务


  • 秒级任务


  • 一次性任务


  • 固定频率
延时任务不支持不支持不支持基于 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 以及修复若干已知问题。
  1. [root@openjob ~]$ java -jar openjob-agent-java-xxx.jar -h
  2. Usage: Openjob-agent-java [-hV] [-s=<serverAddress>]
  3.                           [--worker-app-name=<workerAppName>]
  4.                           [--worker-heartbeat-fail-times=<heartbeatFailTimes>]
  5.                           [--worker-heartbeat-interval=<heartbeatInterval>]
  6.                           [--worker-host=<workerHost>]
  7.                           [--worker-port=<workerPort>]
  8.   -h, --help      Show this help message and exit.
  9.   -s, --server-address=<serverAddress>
  10.                   Server address, default is `http://localhost:8080`
  11.   -V, --version  Print version information and exit.
  12.       --worker-app-name=<workerAppName>
  13.                   Application name, default is `openjob`
  14.       --worker-heartbeat-fail-times=<heartbeatFailTimes>
  15.                   Worker heartbeat fail times, default is `2`
  16.       --worker-heartbeat-interval=<heartbeatInterval>
  17.                   Worker heartbeat interval, default is `5`
  18.       --worker-host=<workerHost>
  19.                   Worker host, default is local IP
  20.       --worker-port=<workerPort>
  21.                   Worker port, default is `25588`
复制代码
 
新增
修复

  • [#137] 客户端心跳异常退出


  • [#137] unix 平台终止 Kettle 
优化

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


  • [#139] 延时实例状态上报
更多内容




  • openjob


  • openjob.io


  • QQ交流群: 849015265
 
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

梦见你的名字

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表