推薦一個很棒的開源工做流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

相關文章
相關標籤/搜索