Coravel:一個可輕松實現任務調度、隊列、郵件發送的開源項目

玩點科技新鮮事 2024-04-30 09:38:52
我是編程樂趣,一個10年.Net開發經驗老程序員,點擊右上方“關注”,每天爲你分享開源項目和編程知識。 推薦一個輕量級的任務調度開源項目。 01 項目簡介 Coravel是一個.NET開源任務調度庫,只需簡單代碼、幾乎零配置就可以實現多種功能櫃,如任務調度、隊列、緩存、事件廣播和郵件發送等。該項目特點就是讓這些通常複雜的功能變得易于訪問和使用,同時提供簡潔、直觀的語法。 02 核心功能 1、任務/作業調度:通過其流暢的代碼內語法,讓你能夠輕松地在應用程序中設置和管理這些任務。 2、隊列:提供了一個開箱即用的隊列系統,它使用內存作爲後端來異步處理任務,從而不會阻塞用戶的 HTTP 請求,改善了應用的性能和用戶體驗。 3、緩存:爲了提高應用程序的響應速度,Coravel 提供了一個簡單易用的緩存 API。默認情況下,它使用內存緩存,但也支持數據庫驅動(SQL Server、PostgreSQL),也可以自定義擴展緩存接口,以適應更複雜的緩存需求。 4、事件廣播:可以構建松耦合的應用程序組件,這有助于提高應用程序的可維護性和靈活性。 5、郵件發送:簡化了郵件發送過程,提供了內置的電子郵件友好的 Razor 模板、簡單靈活的郵件 API,並且支持渲染電子郵件以進行視覺測試。此外,它還支持 SMTP、本地日志文件或自定義郵件器驅動程序。 03 使用示例 1、安裝依賴庫 dotnet tool install --global coravel-cli 2、任務調度 //啓用services.AddScheduler();var provider = app.ApplicationServices;provider.UseScheduler(scheduler =>{ scheduler.Schedule( () => Console.WriteLine("工作日每一分鍾執行一次。") ) .EveryMinute() .Weekday();}); 3、隊列 IQueue _queue;public HomeController(IQueue queue) { this._queue = queue;}//使用隊列this._queue.QueueAsyncTask(async() => { await Task.Delay(1000); Console.WriteLine("這是隊列!"); }); 4、廣播 var provider = app.ApplicationServices;IEventRegistration registration = provider.ConfigureEvents();//注冊和監聽registration .Register() .Subscribe() .Subscribe(); 5、發送郵件 using Coravel.Mailer.Mail;using App.Models;namespace App.Mailables{ public NewUserViewMailable : Mailable { private UserModel _user; public NewUserViewMailable(UserModel user) => this._user = user; public override void Build(){ this.To(this._user) .From("from@test.com") .View("~/Views/Mail/NewUser.cshtml", this._user); } }} 04 項目地址 https://github.com/jamesmh/coravel - End - 推薦閱讀 推薦一個C#輕量級矢量圖形庫 .NET日志庫:Serilog、NLog、Log4Net等十大開源日志庫大盤點! 推薦5個.Net版本 Redis 客戶端開源庫 ImageSharp:高性能跨平台.NET開源圖形庫 盤點3個.Net熱門HTTP開源庫
0 阅读:28

玩點科技新鮮事

簡介:感謝大家的關注