.net mysql 工作流_一个适合于.NET Core的超轻量级工作流引擎:Workflow-Core

一、关于Workflow-Core

近期工作上有一个工作流的开发需求,自己基于面向对象和职责链模式捣鼓了一套小框架,后来在github上发现一个轻量级的工作流引擎轮子:Workflow-Core,看完其wiki之后决定放弃之前自己造的轮子,使用这个开源项目来改造,也就有了这一篇博文。

5a20600d7f243975872f2d3a8c9975c1.png

Workflow-Core是一个基于.NET Standard的轻量级工作流引擎,其GitHub地址为:https://github.com/danielgerlag/workflow-core,目前有超过1200+个star。它提供了FluentAPI、多任务、持久化以及并行处理的功能,适合于小型工作流、责任链的需求开发。

由于Workflow-Core支持工作流长期运行,因此Workflow-Core支持以下多种数据源格式的持久化,可以通过安装不同的Provider包来实现对应的持久化:

(默认提供,用于测试和开发)内存

MongoDB

MS SQL Server

MySql

Sqlite

Redis

PostgreSQL

立刻上手把,Nuget上安装一把,目前最新版本2.0.0:

PM> Install-Package WorkflowCore

二、Workflow-Core的基本使用

2.1 Hello World

这里创建了一个.NET Core控制台应用程序,快速演示第一个Workflow-Core的Hello World,展示如何开始一个Workflow:

(1)定义一个实现IWorkflow接口的Workflow:

48304ba5e6f9fe08f3fa1abda7d326ab.png

public class HelloWorldWorkflow : IWorkflow

{

public string Id => "HelloWorld";

public int Version => 1;

public void Build(IWorkflowBuilder builder)

{

builder

.StartWith()

.Then()

.Then();

}

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

这里定义了一个HelloWorldWorkflow,其版本号为1,它有3个步骤:HelloWorld、ActiveWorld和GoodbyeWorld,会依次执行。

(2)定义三个继承自StepBody类的步骤类:

48304ba5e6f9fe08f3fa1abda7d326ab.png

public class HelloWorld : StepBody

{

public override ExecutionResult Run(IStepExecutionContext context)

{

Console.WriteLine("Hello World!");

return ExecutionResult.Next();

}

}

public class ActiveWorld : StepBody

{

public override ExecutionResult Run(IStepExecutionContext context)

{

Console.WriteLine("I am activing in the World!");

return ExecutionResult.Next();

}

}

public class GoodbyeWorld : StepBody

{

public override ExecutionResult Run(IStepExecutionContext context)

{

Console.WriteLine("Goodbye World!");

return ExecutionResult.Next();

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值