.net core2.1任务调度Quartz可视化管理
若想跳槽可以用这个网站,收录全网面试题,升职、加薪必备神器:面试一点通www.msedt.com
.net core2.1基于Quartz的任务调度-支持Web可视化界面和api调用动态添加
- 框架说明
- 特点
- .net core2.1 webapi搭建
- 1. 创建.net core2.1 webapi项目
- 2. NuGet安装Quartz,版本号3.0.7
- 3. 在JobScheduling.Application层定义Quartz操作接口;
- 4.实现Quartz操作接口
框架说明
在实际的业务场景当中,常常会遇到有些事情需按照一定的规律来执行:
比如:每隔3个月定期清理Log日志,释放服务器空间;
比如:物流公司每隔2小时同步一下最新物流追踪信息到电商平台;
比如:人事部门给员工准点生日祝福(公司系统祝福,或者短信祝福等等…)
比如:每隔一段时间检测一下目标系统是否在健康运行,若非健康可以短信/邮件通知相关技术负责人,能在第一时间知道系统故障.
…等等场景,还有很多很多.
本项目是基于Quartz搭建,采用.net core2.1 webapi跨平台开发.关于Quartz的知识,本文不做详细介绍,若对Quartz比较陌生,可以参照官方文档学习:官方文档地址;
整体项目层次说明:
可视化管理界面:
特点
- 支持java,node.js,c#等等语言动态添加任务调度;
- 为了实现调度策略和具体业务逻辑解耦解耦,采用Job基于http/https请求实现的方式(即:各自业务系统,各自去实现自己调度要干的事,Rubber-Quartz-Web只管理调度策略);
- 支持可视化界面添加,和Eureka服务发现添加,或者直接调用api添加来管理调度任务.
- 基于.net core跨平台实现,Rubber-Quartz-Web可以部署在linux,windows server等服务器上;
.net core2.1 webapi搭建
1. 创建.net core2.1 webapi项目
2. NuGet安装Quartz,版本号3.0.7
3. 在JobScheduling.Application层定义Quartz操作接口;
using JobScheduling.Application.Quartz.Dto;
using JobScheduling.IRepository.Entities;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace JobScheduling.Application.Quartz
{public interface IJobCenter{Task InitTask();/// <summary>/// 统计任务/// </summary>/// <returns></returns>StatisTaskOutput StatisTask();/// <summary>/// 获取当前任务/// </summary>/// <returns></returns>List<JobOutDto> GetCurrentlyExecutingJobs();/// <summary>/// 调度日志/// </summary>/// <param name="input"></param>/// <returns></returns>List<JobLog> JobLog(JobLogInput input);/// <summary>/// 错误日志/// </summary>/// <param name="input"></param>/// <returns></returns>List<JobLog> ErrorLog(DateTime sTime, DateTime eTime,string jobKey);/// <summary>/// 查询jobKey/// </summary>/// <returns></returns>List<string> QueryGroupAndJob();/// <summary>/// 添加定时任务/// </summary>/// <param name="m"></param>/// <returns></returns>Task<string> AddScheduleJobAsync(JobScheduleInput input,int flag = 0);/// <summary>/// 编辑定时任务/// </summary>/// <param name="m"></param>/// <returns></returns>Task<string> UpdateScheduleJobAsync(JobScheduleInput input);/// <summary>/// 暂停定时任务/// </summary>/// <param name="jobGroup"></param>/// <param name="jobName"></param>/// <returns></returns>Task<bool> StopScheduleJobAsync(Guid taskScheduleId);/// <summary>/// 重启任务/// </summary>/// <param name="jobGroup"></param>/// <param name="jobName"></param>/// <returns></returns>Task<bool> RunScheduleJobAsync(Guid taskScheduleId);/// <summary>/// 删除定时任务/// </summary>/// <param name="jobGroup"></param>/// <param name="jobName"></param>/// <returns></returns>Task<bool> DeleteScheduleJobAsync(Guid taskScheduleId);}
}
4.实现Quartz操作接口
通过构造函数,注入Quartz框架中ISchedulerFactory
public class JobCenter : IJobCenter
{public static IScheduler scheduler = null;public JobCenter(ISchedulerFactory schedulerFactory){_schedulerFactory = schedulerFactory;scheduler = _schedulerFactory.GetScheduler().Result;}...增删改查调度任务,通过调用scheduler里的接口具体实现
}
若想跳槽可以用这个网站,有更详细的资源http://www.msedt.com/
.net core2.1任务调度Quartz可视化管理相关推荐
- Linux操作系统——Linux可视化管理-webmin 和 bt 运维工具
文章目录 25 Linux 可视化管理-webmin 和 bt 运维工具 25.1 webmin 25.1.1 基本介绍 25.1.2 安装webmin&配置 25.1.3 简单使用演示 25 ...
- MongoDB安装和MongoChef可视化管理工具的使用
MongoDB Windows 用户向导:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows/ 注意:最后一步时,左 ...
- docker可视化管理工具对比 DockerUI Shipyard Rancher Portainer
目录 1.前言 2.优劣对比 DockerUI Shipyard Rancher Portainer 1.前言 谈及docker,避免不了需要熟练的记住好多命令及其用法,对于熟悉shell.技术开发人 ...
- mac mysql 可视化工具_推荐3款好用的Redis、MySQL和MongoDB可视化管理工具
学习编程时,总会遇到各种各样的数据库,比如Redis.MySQL或MongoDB.这些数据库都有一个共同特点:全是基于命令行操作,没有可视化管理界面. 比如,开启数据库服务的命令是这样的. 首先,以管 ...
- 地图漫游功能的具体体现_骏谷科技|数据中心三维可视化管理系统功能亮点
原标题:骏谷科技|数据中心三维可视化管理系统功能亮点 数据中心三维可视化管理系统功能亮点,可视化管理系统为解决以上痛点应运而生.可视化管理系统结合了传统二维管理系统简单易用的特点,对资产数据等等数据进 ...
- yapi 插件_强大的开源API接口可视化管理平台——YAPI
背景 在之前有些时日,曾经写过一个API管理平台--DOClever,但是总觉得界面上稍微差了点,刚好之前有朋友在评论区留言,让我知道了今天要介绍的这个平台YAPI,YApi 是一个可本地部署的.打通 ...
- Deepin/Linux系统使用GUFW可视化管理、配置防火墙规则
对于没有接触过 Linux 的人,配置防火墙难于上青天,即便是缙哥哥这样玩过一丢丢的,也不喜欢用命令控制.所以,今天就给大家带来一款Deepin/Linux系统可视化管理.配置防火墙规则的软件--GU ...
- 可视化管理_供应链可视化管理的应用与展望
一.供应链可视化定义及基本内容 1.供应链可视化的定义供应链可视化就是利用信息技术,采集.传递.存储.分析.处理供应链中的订单.物流以及库存等相关指标信息,按照需求以图形化的方式展现出来.2.供应链 ...
- 可视化管理_RFID技术实施智能仓储管理可视化
仓储物流管理在各个行业都非常重要,RFID技术助力仓储物流信息管理提高供应链管理的透明度和库存周转率,这样有效减少缺货损失,提高企业内的仓储物流效率.仓库管理过程中,存在区域划分笼统,不容易辨识,货物 ...
- Kibana可视化管理页面详细使用说明
Kibana可视化管理页面详细使用说明 使用浏览器访问 ip:5601 默认端口,进入首页 Discover:日志管理视图 主要进行搜索和查询 Visualize:统计视图 构建可视化的图 ...
最新文章
- 初中计算机word试题,初中计算机会考word试题WORD11
- Linux下实现文件双向同步
- 淡入淡出效果 || 高亮显示案例
- 麒麟系统兼容安卓生态 弥补生态短板
- GPU CUDA 经典入门指南
- java 方法 示例_Java语言环境getDisplayCountry()方法与示例
- PHP占用内存越来越多,解决phpQuery占用内存过多的问题
- 单体内置对象_单体内置对象
- D - 昂贵的聘礼(最短路径)
- 没有加载jawt导致java.lang.UnsatisfiedLinkError
- NLPIR/ICTCLAS 2015 分词系统使用
- 数字信号处理及其MATLAB实现总结
- 神经元图片结构图,一个神经元简图
- 2018.10.16 best-ks分箱
- 虚无缥缈的自信,一落千丈的打击
- MySQl 表基本查询操作
- Python Open3D点云配准点对点,点对面ICP(Iterative Closest Point)
- 电脑开飞行模式为什么还可以上网?
- 基于多模型融合的用户画像分析统计方法研究
- 自动上传本地图片和word图片(word图片需使用从word粘贴功能)