推荐一个很棒的开源工做流elsa-core

image

开源项目orchard主要开发人员Sipke Schoorstra 开源了一个netcore 工做流项目,地址:https://github.com/elsa-workflows/elsa-core,最新版本1.2,正在开发2.0版本 。Spike 是参照Orchard Core的工做流引擎的原理,将其转化为一个可重用的.NET标准库,从而使*任何* .NET应用程序都能享受工做流的强大功能,使开发人员可以实现长期运行的工做流。 ELSA的核心理念是可以相互链接小的可执行单元,容许您编排实际的业务流程,如文档审批、客户入职和订单流程。git

项目主页上有介绍Elsa是以OrchardCore 工做流为灵感的,同时也从许多其余现有的工做流解决方案中得到了灵感,例如Windows Workflow FoundationAzure Logic Apps,我继续受到图书馆的启发,例如Workflow CoreWorkflow Enginegithub

image

ELSA 与其它工做流引擎不同的地方,它有一个漂亮的流程设计器:https://elsa-workflows.github.io/elsa-core/docs/guides-dashboard#create-a-workflow web

ELSA可用于在您本身的应用程序流程中实现工做流引擎,也可用做与您的应用程序交互的外部工做流服务。docker

Spike 写了一个比较完整场景示例--用户注册:https://github.com/elsa-workflows/elsa-samplesjson

在这个场景中,咱们有一个web应用程序,用户能够在这个应用程序中注册帐号。注册后,咱们但愿该系统分配用户角色并给用户发送激活帐号的电子邮件 。windows

若是用户没有在规定的时间内激活其账户,则继续向用户发送提醒电子邮件。浏览器

若是用户单击激活邮件里的连接,他们的账户就会被激活。可是,若是用户没有及时激活他们的账户,他们的账户就会被清理和移除。服务器

咱们fork 这个程序代码并下载到本地,这里我把它升级到了最新版本和.NET Core 3.1,示例使用Mongodb做为持久化,若是没有安装MongoDB,则能够使用docker 运行项目里的docker-compose.yaml 。app

运行VS 运行不调试应用程序,使用浏览器访问到/esla/home ,成功运行的话咱们能够elsa的控制面板:asp.net

image

单击左侧的工做流菜单项,能够看到右边的建立工做流按钮,咱们选择导入

user-registration-workflow.json:

image

点击Publish 正式发布流程。

应用正常运行还须要运行一个SMTPDev来模拟测试SMTP服务:Smtp4dev(https://github.com/rnwood/smtp4dev)是经过SMTP服务器捕获全部发出的电子邮件,并容许你直接在该工具的用户界面中进行查看。Smtp4dev适合处理电子邮件相关问题,尤为是在电子邮件需按时间点发送这样的自动化过程当中而你仍须要验证其逻辑性和正确性时。

经过命令运行安装:

dotnet tool install -g Rnwood.Smtp4dev --version "3.1.0-*"
运行smtpdev,它也是一个asp.net core 应用程序,同时开启smtp端口,把咱们的应用的smtp 配置修改为25。 浏览器访问注册页面:
image
提交后,咱们去看elsa的控制台,流程实例已经流转到邮件激活:
image

咱们打开smtpdev的页面:

image

点击激活连接激活帐号,进入到elsa 的面板看看咱们的流程已经完成了:

image

查看咱们的smtpdev页面看到咱们收到了激活成功的邮件

image

相关文章: https://www.jianshu.com/p/9c74ff7da451

相关文章
相关标签/搜索