最近在用Quartz做定時任務.雖然很方便,但是Quartz自己貌似是沒有UI界面的..感覺操作起來 就很難受..
查了一下,貌似有個UI組件 不過看了一下文檔..直接給我勸退了..太麻煩了
我只想要一個像swaggerUI一樣,項目入侵量小,僅需要在Startup中注入的UI組件
然後就打算自己做一個.
最近終於完成第一個版本啦.. 打算直接開源給社區..
代碼暫時還沒上傳,容我在優化一下..
本篇主要就是簡單介紹一下如何使用和一部分界面.
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接口了..因爲稍微麻煩一點,所以我們下篇再講..