最近在用Quartz做定時任務.雖然很方便,但是Quartz自己貌似是沒有UI界面的..感覺操作起來 就很難受..
查了一下,貌似有個UI組件 不過看了一下文檔..直接給我勸退了..太麻煩了
我只想要一個像swaggerUI一樣,項目入侵量小,僅需要在Startup中注入的UI組件
然后就打算自己做一個.
最近終於完成第一個版本啦.. 打算直接開源給社區..
代碼已開源:點擊跳轉github(歡迎點Start收藏~)
本篇主要就是簡單介紹一下如何使用和一部分界面.
1.注入QuartzUI
我們隨意創建一個托管項目,這里我們以WebAPI作為示例,
通過Nuget添加GZY.Quartz.MUI 組件,如圖:

在Startup的ConfigureServices中添加注入代碼如下:
public void ConfigureServices(IServiceCollection services) { services.AddControllers(); var optionsBuilder = new DbContextOptionsBuilder<QuarzEFContext>(); optionsBuilder.UseDm("server=xxxxxxx;database=xxx;User Id=xxxx;PWD=xxxx", b => b.MaxBatchSize(1)); services.AddQuartzUI(optionsBuilder.Options); }
組件使用EF Core作為數據持久化訪問的工具(后期考慮擴展使用本地化的文本和其他的ORM框架,源碼中也提供了接口,歡迎各路大神提交代碼自行實現),所以需要創建一個DbContextOptionsBuilder,添加給QuartzUI即可.
在Startup的Configure方法中添加以下內容:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseRouting(); app.UseAuthorization(); app.UseQuartz(); //這里注入Quartz app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); }
2.運行項目進入管理界面
直接運行項目,我們在URL中輸入固定后綴 QuartzUI 如圖:

這樣,我們的定時任務組件就跑起來了.
3.創建一個API類型的定時任務
點擊新建任務,輸入對應參數.如圖:

注意:新建完成后任務處於未開啟狀態,需手動啟動.
點擊啟動任務,定時任務就會根據設置啟動了.
4.查看任務執行日志
點擊任務后面的執行記錄,即可查詢.如圖:

5.任務持久化
組件已經自動將任務持久化處理,項目啟動時會自行根據數據庫的數據情況來初始化任務,無需進行其他處理.
有心的同學已經已經發現了..我們有DLL的類型..
這種類型是直接調用項目中的代碼..就不用通過API接口了..因為稍微麻煩一點,所以我們下篇再講..
