在当今的软件开发领域,工作流和ETL(Extract, Transform, Load)系统是数据处理和业务流程自动化的关键组成部分。RESTGrid是一个基于.NET Core的简单工作流/ETL系统,它通过REST服务与外界交互,支持同步和异步工作流,并且可以通过REST API进行管理。此外,RESTGrid还支持Docker容器部署,使得它可以轻松地在支持Docker的云平台上运行。
RESTGrid具有以下核心特性:
RESTGrid的系统架构包括以下几个主要组件:
系统的业务逻辑使用标准的JSON格式定义,与之前提到的FloatingBridge相似,但更为简化。业务逻辑的JSON包含以下属性:
任务可以是以下四种类型之一:
RESTGrid是一个基于接口的系统。核心库提供了可以继承以实现自己的后端提供者的接口。以下是提供的一些接口:
namespace RESTGrid.Interfaces {
public interface IAdministration {
void CreateWorkflowType(string workflowTypeName, JObject businessLogicJson);
void CreateTransformer(JObject transformerJson);
WorkflowHistory GetHistory(string workflowID);
}
}
namespace RESTGrid.Interfaces {
public interface IOrchestration {
void PublishWorkflowStep(string workflowTypeName, Guid workflowID, JObject messageBodyJson, JObject customPropertiesJson, string stepIdentifier, bool stepSucceeded, bool workflowCompleted, int retries, bool active, string runStepIdentifier, string splitID);
void SetWorkflowActive(JObject messageBodyJson, string customPropertyName, string customPropertyValue);
List<RESTGrid.Models.Queue> Enqueue();
JObject GetTransformer(int transformerID);
}
}
实现IOrchestration接口后,可以轻松开发自己的编排/工作流引擎。以下是MySql引擎的实现方式:
MySqlOrchestration orchestration = new MySqlOrchestration(connectionString);
OrchestrationEngine engine = new OrchestrationEngine(orchestration);
Console.WriteLine("Running orchestration engine...");
while (true) {
engine.Run();
}
MySql提供者的REST API包括以下API: