日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

.Net Core中使用Quartz.Net Vue开即用的UI管理

發布時間:2023/12/4 vue 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .Net Core中使用Quartz.Net Vue开即用的UI管理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Quartz.NET

  • Quartz.Net 定制UI維護了常用作業添加、刪除、修改、停止、啟動功能,直接使用cron表達式設置作業執行間隔,有完整的日志記錄。

  • Quartz.NET是一個功能齊全的開源作業調度系統,可用于從最小的應用程序到大型企業系統。

  • Quartz.NET是一個用C#編寫的純.NET庫,是對JAVA開源調度框架Quartz的移植。目前支持.Net Core

  • Quartz.NET官方地址:https://www.quartz-scheduler.net/

?1.Quartz.NetUI 開發環境

.net core2.1及以上版本、vs2017、Quartz.NET 3.0.7 、 vue 2.0 、IView

?2.開箱即用、不依賴數據庫

  • 直接運行Quartz.NetUI\Quartz.NET.Web目錄下run.bat文件或部署項目

  • 登陸口令token位于appsettings.json節點token

  • 管理員帳號位于appsettings.json節點superToken

?3.主要代碼文件

  • QuartzSettings? ? ? ? ? ? ? ? ? ? ? ? 文件夾由系統自動生成,與項目文件夾同級,存放作業配置信息及日志信息(發布時不需要發布或復制此文件夾)

  • TaskAuthorizeFilter.cs? ? ? ? ? ? ?帳號權限、AllowAnonymous過濾

  • QuartzNETExtension.cs? ? ? ? ?處理作業添加、刪除、修改、停止、啟動功能

  • FileQuartz.cs? ? ? ? ? ? ? ? ? ? ? ? ? 集中處理作業相關日志

  • HttpManager.cs? ? ? ? ? ? ? ? ? ? ? 接口處理

  • HealthController? ? ? ? ? ? ? ? ? ? ? 對外開放的健康檢查接口,判斷作業站點是否處理活動狀態。

  • TaskOptions.cs? ? ? ? ? ? ? ? ? ? ? ?作業相關字段

  • TaskBackGround/Index.cshtml? ? ?作業UI

  • task-index.js? ? ? ? ? ? ? ? ? ? ? ? ? ? 前端Vue+IView

4、作業觸發器操作 QuartzNETExtension.cs

/// <summary>/// 觸發新增、刪除、修改、暫停、啟用、立即執行事件/// </summary>/// <param name="schedulerFactory"></param>/// <param name="taskName"></param>/// <param name="groupName"></param>/// <param name="action"></param>/// <param name="taskOptions"></param>/// <returns></returns>public?static?async Task<object> TriggerAction(this?ISchedulerFactory schedulerFactory,?string?taskName,?string?groupName, JobAction action, TaskOptions taskOptions =?null){????string?errorMsg =?"";????try????{????????IScheduler scheduler = await schedulerFactory.GetScheduler();????????List<JobKey> jobKeys = scheduler.GetJobKeys(GroupMatcher<JobKey>.GroupEquals(groupName)).Result.ToList();????????if?(jobKeys ==?null?|| jobKeys.Count() == 0)????????{????????????errorMsg = $"未找到分組[{groupName}]";????????????return?new?{ status =?false, msg = errorMsg };????????}????????JobKey jobKey = jobKeys.Where(s => scheduler.GetTriggersOfJob(s).Result.Any(x => (x?as?CronTriggerImpl).Name == taskName)).FirstOrDefault();????????if?(jobKey ==?null)????????{????????????errorMsg = $"未找到觸發器[{taskName}]";????????????return?new?{ status =?false, msg = errorMsg };????????}????????var?triggers = await scheduler.GetTriggersOfJob(jobKey);????????ITrigger trigger = triggers?.Where(x => (x?as?CronTriggerImpl).Name == taskName).FirstOrDefault();????????if?(trigger ==?null)????????{????????????errorMsg = $"未找到觸發器[{taskName}]";????????????return?new?{ status =?false, msg = errorMsg };????????}????????object?result =?null;????????switch?(action)????????{????????????case?JobAction.刪除:????????????case?JobAction.修改:????????????????await scheduler.PauseTrigger(trigger.Key);????????????????await scheduler.UnscheduleJob(trigger.Key);// 移除觸發器????????????????await scheduler.DeleteJob(trigger.JobKey);????????????????result = taskOptions.ModifyTaskEntity(schedulerFactory, action);????????????????break;????????????case?JobAction.暫停:????????????case?JobAction.停止:????????????case?JobAction.開啟:????????????????result = taskOptions.ModifyTaskEntity(schedulerFactory, action);????????????????if?(action == JobAction.暫停)????????????????{????????????????????await scheduler.PauseTrigger(trigger.Key);????????????????}????????????????else?if?(action == JobAction.開啟)????????????????{????????????????????await scheduler.ResumeTrigger(trigger.Key);????????????????????//?? await scheduler.RescheduleJob(trigger.Key, trigger);????????????????}????????????????else????????????????{????????????????????await scheduler.Shutdown();????????????????}????????????????break;????????????case?JobAction.立即執行:????????????????await scheduler.TriggerJob(jobKey);????????????????break;????????}????????return?result ???new?{ status =?true, msg = $"作業{action.ToString()}成功"?};????}????catch?(Exception ex)????{????????errorMsg = ex.Message;????????return?new?{ status =?false, msg = ex.Message };????}????finally????{????????FileQuartz.WriteJobAction(action, taskName, groupName, errorMsg);????}}

UI

5.在線演示地址

  • http://132.232.2.109:9950?登陸口令:task123456

  • GitHub:https://github.com/cq-panda/Quartz.NetUI


原文鏈接:https://www.cnblogs.com/-clouds/p/10947924.html


.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總?http://www.csharpkit.com?

總結

以上是生活随笔為你收集整理的.Net Core中使用Quartz.Net Vue开即用的UI管理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。