GoBatch简介 —— 一款基于go语言的企业级批处理框架(Golang下的SpringBatch)

GoBatch是一个类似SpringBatch的Golang批处理框架,用于构建模块化的批处理应用。它支持任务编排、多任务管理、串行及并行执行、断点续跑等功能。任务由步骤组成,步骤类型包括简单步骤、分块步骤和分区步骤,适配不同业务需求。GoBatch提供事务管理、执行状态记录,并依赖database/sql和数据库驱动。通过注册Handler、Reader、Processor、Writer等接口,用户可自定义业务逻辑。框架还支持通过定时任务、事件或命令行触发任务执行。

GoBatch是一款用go语言实现的企业级批处理框架,其设计思想来源于SpringBatch,相当于golang下的SpringBatch框架。

项目仓库地址:

Github:GitHub - chararch/gobatch: GoBatch is a batch processing framework in Go like Spring Batch in Javahttps://github.com/chararch/gobatch Gitee:gobatch: GoBatch is a batch processing framework in Go like Spring Batch in Javahttps://gitee.com/chararch/gobatch

功能

GoBatch的主要功能包括:

  1. 以模块化方式构建批处理应用程序。
  2. 管理多个批处理任务的运行。
  3. 任务被分为多个串行执行的步骤,一个步骤可以通过分区由多线程并行执行。
  4. 自动记录任务执行状态,支持任务失败后断点续跑。
  5. 内置文件读写组件,支持tsv、csv、json等格式的文件读写及校验。
  6. 提供多种Listener,便于对任务和步骤进行扩展。

架构

GoBatch整体架构分为三层:

  1. 接口层:提供上层应用调用的接口,主要包括任务编排、任务管理、任务的启动和暂停。
  2. 核心层:提供一套任务执行引擎,包括数据处理、文件读写、并行处理和错误处理等通用组件或能力。
  3. 基础层:包括协程池、事务管理、任务执行状态记录、日志打印等

作为一款批处理框架,GoBatch的核心能力是任务编排和任务执行。应用程序需要首先通过GoBatch接口完成任务编排,才可以执行任务。

从任务结构编排上来说,一个任务(Job)由多个步骤(Step)构成,每个步骤包含一段业务逻辑,各步骤按照先后顺序依次执行。 任务编排即是将不同的业务逻辑构造成多个步骤(Step)并按照一定顺序组装成任务(Job),交由GoBatch运行时管理。作为批处理框架,GoBatch可以管理多个任务。

任务执行时,应用程序可以传递参数给指定任务,GoBatch根据传入的任务参数生成一个任务实例(JobInstance)。一个任务实例可能会被多次执行,每次执行时,GoBatch会创建一条任务执行记录(JobExecution)用于记录任务的执行状态信息。 同理,每个Step的运行也会生成一条步骤执行记录(StepExecution)。GoBat

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值