珠海制作公司网站,链接点击量软件,wordpress 做官网,满堂彩谁做的网站Quartz.NETQuartz.Net 定制UI维护了常用作业添加、删除、修改、停止、启动功能#xff0c;直接使用cron表达式设置作业执行间隔#xff0c;有完整的日志记录。Quartz.NET是一个功能齐全的开源作业调度系统#xff0c;可用于从最小的应用程序到大型企业系统。Quartz.NET是一个… Quartz.NETQuartz.Net 定制UI维护了常用作业添加、删除、修改、停止、启动功能直接使用cron表达式设置作业执行间隔有完整的日志记录。Quartz.NET是一个功能齐全的开源作业调度系统可用于从最小的应用程序到大型企业系统。Quartz.NET是一个用C编写的纯.NET库是对JAVA开源调度框架Quartz的移植。目前支持.Net CoreQuartz.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 作业UItask-index.js 前端VueIView4、作业触发器操作 QuartzNETExtension.cs/// summary/// 触发新增、删除、修改、暂停、启用、立即执行事件/// /summary/// param nameschedulerFactory/param/// param nametaskName/param/// param namegroupName/param/// param nameaction/param/// param nametaskOptions/param/// returns/returnspublic static async Taskobject TriggerAction(this ISchedulerFactory schedulerFactory, string taskName, string groupName, JobAction action, TaskOptions taskOptions null){ string errorMsg ; try { IScheduler scheduler await schedulerFactory.GetScheduler(); ListJobKey jobKeys scheduler.GetJobKeys(GroupMatcherJobKey.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); }}UI5.在线演示地址http://132.232.2.109:9950 登陆口令task123456GitHubhttps://github.com/cq-panda/Quartz.NetUI原文链接https://www.cnblogs.com/-clouds/p/10947924.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com