1. 程式人生 > >推薦一個很棒的開源工作流elsa-core

推薦一個很棒的開源工作流elsa-core

開源專案orchard主要開發人員Sipke Schoorstra 開源了一個netcore 工作流專案,地址:https://github.com/elsa-workflows/elsa-core,最新版本1.2,正在開發2.0版本 。Spike 是參照Orchard Core的工作流引擎的原理,將其轉化為一個可重用的.NET標準庫,從而使*任何* .NET應用程式都能享受工作流的強大功能,使開發人員能夠實現長期執行的工作流。 ELSA的核心理念是能夠相互連線小的可執行單元,允許您編排實際的業務流程,如文件審批、客戶入職和訂單流程。

專案主頁上有介紹Elsa是以OrchardCore 工作流為靈感的,同時也從許多其他現有的工作流解決方案中獲得了靈感,例如Windows Workflow Foundation和Azure Logic Apps,我繼續受到圖書館的啟發,例如Workflow Core和Workflow Engine。

ELSA 與其它工作流引擎不一樣的地方,它有一個漂亮的流程設計器:https://elsa-workflows.github.io/elsa-core/docs/guides-dashboard#create-a-workflow

ELSA可用於在您自己的應用程式流程中實現工作流引擎,也可用作與您的應用程式互動的外部工作流服務。

Spike 寫了一個比較完整場景示例--使用者註冊:https://github.com/elsa-workflows/elsa-samples:

在這個場景中,我們有一個web應用程式,使用者可以在這個應用程式中註冊賬號。註冊後,我們希望該系統分配使用者角色並給使用者傳送啟用賬號的電子郵件 。

如果使用者沒有在規定的時間內啟用其帳戶,則繼續向用戶傳送提醒電子郵件。

如果使用者單擊啟用郵件裡的連結,他們的帳戶就會被啟用。但是,如果使用者沒有及時啟用他們的帳戶,他們的帳戶就會被清理和移除。

我們fork 這個程式程式碼並下載到本地,這裡我把它升級到了最新版本和.NET Core 3.1,示例使用Mongodb作為持久化,如果沒有安裝MongoDB,則可以使用docker 執行專案裡的docker-compose.yaml 。

執行VS 執行不除錯應用程式,使用瀏覽器訪問到/esla/home ,成功執行的話我們可以elsa的控制面板:

單擊左側的工作流選單項,可以看到右邊的建立工作流按鈕,我們選擇匯入

user-registration-workflow.json:

點選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。 瀏覽器訪問註冊頁面:
 
提交後,我們去看elsa的控制檯,流程例項已經流轉到郵件啟用:
 

我們開啟smtpdev的頁面:

點選啟用連結啟用賬號,進入到elsa 的面板看看我們的流程已經完成了:

檢視我們的smtpdev頁面看到我們收到了啟用成功的郵件

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