更强大、更智能的任务调度框架 - Openjob 1.0.6 发布
  cxS8xrZtIOXO 2023年11月24日 14 0

介绍

Openjob 基于 Akka 架构的新一代分布式任务调度框架。支持多种定时任务、延时任务、工作流设计,采用无中心化架构,底层使用一致性分片算法,支持无限水平扩容。

  • 完善的任务日志存储,支持 H2/Mysql/oracle/Postgresql/Elasticsearch
  • 任务运行堆栈功能可详细记录任务运行过程,帮助管理员快速排查问题
  • 报警与权限功能也极为重要,它提供任务事件监控报警,以及详细的报警历史记录
  • 管理员可以使用企业微信、飞书、webhook 等渠道接收报警信息。 
  • 命名空间方式设计,支持按钮级别权限管理,轻松应对复杂的项目管理。
  • 支持多种编程语言,如 Java,Go,PHP 和 Python,各个语言的支持度都非常友好。

如果您正在寻找一款高性能的分布式任务调度框架,支持定时任务、延时任务、轻量级计算、工作流编排,并且支持多种编程语言,那么 Openjob 肯定是不二之选。

更强大、更智能的任务调度框架 - Openjob 1.0.6 发布_定时任务

Openjob 除了支持基本的任务调度,还提供延时任务、分布式计算以及工作流。

定时任务

  • 普通定时任务,支持 Unix Crontab 表达式。
  • 秒级定时任务,适用于对实时性要求比较高的业务,例如执行间隔为 3 秒的定时调度任务。
  • 固定频率任务,Crontab 必须被 60 整除,不支持其它数量级时间间隔的任务,一般用于定期轮询场景
  • 分布式计算
  • 单机,随机选择一台机器完成任务执行。
  • 广播,应用所有机器同时执行且等待全部结束。
  • Map 模型,类似于 Hadoop 的 Map。只需简单实现一个 Map 方法,就可以将海量数据分布到多台机器上执行。
  • MapReduce 模型,MapReduce 模型是 Map 模型的扩展。所有子任务执行完成后执行 Reduce 方法,可以在 Reduce 方法中处理任务运行结果和数据。
  • 静态分片,类似 Elastic-Job 模型,控制台配置分片数,可以按照分片分配到不同的客户端执行,支持多语言版本。
  • 执行器
  • 普通执行器,普通函数或类的方式执行任务
  • HTTP,定时请求固定的地址。
  • Kettle,内置 Kettle 命令执行器
  • 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.6 新增监控报警以及修复若干已知问题

新增

  • [#141] 新增报警 (钉钉 / 企微 / 飞书 / Webhook)
  • [#141] 定时任务新增超时
  • [#141] 定时任务和延时任务新增失败子状态
  • [#144] 定时任务列表新增下一次执行时间
  • [#144] 新增个人详情页面和个人信息修改 (密码)
  • [#144] 首页新增运行中统计

修复

  • [#144] 修复超时日志同步问题

优化

  • [#144] 优化定时任务实例数据显示
  • [#144] Elasticsearch7 自动创建索引
  • [#144] 优化用户默认头像
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月24日 0

暂无评论

推荐阅读
  X5zJxoD00Cah   2023年11月24日   16   0   0 SQL运算符
  X5zJxoD00Cah   2023年12月11日   17   0   0 表名SQL
  DF5J4hb0hcmT   2023年12月08日   10   0   0 慢查询druidSQL
cxS8xrZtIOXO