Openjob,分布式任务调度框架

开发 架构
本文从多方面介绍名为Openjob的基于Akka的分布式任务调度框架,希望能为读者提供全面的了解和参考。

1 什么是Openjob

Openjob是一种基于Akka的新分布式任务调度框架。支持多种cronjob、延迟任务和工作流,使用一致性分片算法,具备无限的水平扩展。

图片

2 特性

Openjob不仅支持基本的cronjob,还支持延迟任务、分布式计算和工作流。

2.1 Cronjob

Openjob支持Cronjob任务调度,具备以下特点:

  • 支持Unix Crontab表达式
  • 秒级别,执行周期小于60秒
  • 固定频率,以分钟为单位执行任务

图片

2.2 延迟任务

Openjob支持基于Redis的分布式高性能延迟任务,并提供丰富的报告和统计信息,这种延迟任务能够保证高效、可靠地执行。

2.3 分布式计算

Openjob支持分布式计算,可实现以下功能:

  • 独立执行:任务可在工作客户端上独立执行。
  • 广播执行:任务可在所有工作客户端上广播执行。
  • 映射执行:映射函数可以将大数据分发到多台机器上执行,类似于Hadoop map
  • MapReduce:MapReduce是Map的扩展。在所有Map子任务完成后,执行Reduce方法,可以在Reduce方法中处理任务执行的结果和数据。
  • 分片:类似于Elastic-Job模型,在管理上配置分片数,可以通过分片调度到不同的客户端,并支持多种语言。

图片

2.4 处理器

Openjob提供处理器功能,可通过函数或类执行任务,支持Java、Golang和PH语言。同时,还支持以下处理器类型:

  • HTTP:可用于定期请求HTTP。
  • Shell:可用于执行shell脚本。

2.5 可视化操作

Openjob提供可视化操作功能,包含以下内容:

  • 仪表板:提供丰富的任务统计和报告功能,方便用户对任务执行情况进行实时监控和分析。
  • 任务历史记录:记录任务执行的历史记录,方便用户查看任务的执行情况和结果。
  • 任务日志:提供完整的任务日志,并支持存储到H2、Mysql、Elasticsearch等多种数据库中,方便用户查询和分析任务执行的详细信息。
  • 任务运行栈:详细记录任务执行的栈信息,方便用户排查任务执行中的问题和错误。

图片

2.6 警报和权限

Openjob提供警报和权限管理功能,包括以下内容:

  • 提供任务事件监控警报、详细的警报历史记录,并支持微信、飞书和Webhook触发器通知。
  • 设计有命名空间,支持按按钮级别访问控制,方便用户对复杂项目进行管理和维护。

2.7 多种语言

Openjob支持多种语言和框架,包括以下内容:

  • Java和其框架:原生支持。
  • Go:支持使用go mod install命令来管理Go语言的依赖。
  • PHP:支持使用Golang代理以shell模式执行任务,同时支持Swoole框架的composer install命令。
  • Python支持使用Golang代理以shell模式执行任务,方便用户使用Python语言编写任务。

3 应用场景

Openjob非常适用于具有任务调度和延迟任务的业务场景,例如每天清理数据和生成报告。它还适用于轻量级计算,通过Map/MapReduce可以方便地进行大数据计算。对于复杂的任务流或工作流,Openjob也提供了相应的UI设计工具,方便用户进行可视化的流程设计和管理。因此,Openjob是一个功能强大、灵活性高的分布式任务调度框架,适用于各种规模和类型的业务场景。

责任编辑:武晓燕 来源: Java学研大本营
相关推荐

2019-11-15 10:16:27

分布式任务框架

2020-09-29 19:20:05

鸿蒙

2023-05-08 16:38:46

任务调度分布式任务调度

2020-11-06 12:12:35

HarmonyOS

2022-06-20 15:32:55

Stage模型分布式开发

2022-06-13 07:43:21

分布式Spring

2019-07-19 15:51:11

框架选型分布式

2021-11-10 16:10:18

鸿蒙HarmonyOS应用

2022-08-09 08:40:37

框架分布式定时任务

2020-06-23 10:22:58

GitHub代码开发者

2024-02-19 00:00:00

分布式定时任务框架

2021-11-29 08:48:00

K8S KubernetesAirflow

2021-08-16 09:55:41

鸿蒙HarmonyOS应用

2023-04-19 16:51:54

分布式Primus开源

2021-05-31 20:24:16

鸿蒙HarmonyOS应用

2017-08-22 11:10:44

大数据分布式调度

2017-07-26 14:55:32

分布式技术架构

2021-01-28 07:32:14

框架分布式调度

2022-01-27 08:44:58

调度系统开源

2022-08-19 18:03:12

Scheduler
点赞
收藏

51CTO技术栈公众号