若想跳槽可以用这个网站,收录全网面试题,升职、加薪必备神器:面试一点通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比较陌生,可以参照官方文档学习:官方文档地址;
整体项目层次说明:

可视化管理界面:

特点

  1. 支持java,node.js,c#等等语言动态添加任务调度;
  2. 为了实现调度策略具体业务逻辑解耦解耦,采用Job基于http/https请求实现的方式(即:各自业务系统,各自去实现自己调度要干的事,Rubber-Quartz-Web只管理调度策略);
  3. 支持可视化界面添加,和Eureka服务发现添加,或者直接调用api添加来管理调度任务.
  4. 基于.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可视化管理相关推荐

  1. Linux操作系统——Linux可视化管理-webmin 和 bt 运维工具

    文章目录 25 Linux 可视化管理-webmin 和 bt 运维工具 25.1 webmin 25.1.1 基本介绍 25.1.2 安装webmin&配置 25.1.3 简单使用演示 25 ...

  2. MongoDB安装和MongoChef可视化管理工具的使用

    MongoDB Windows 用户向导:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows/ 注意:最后一步时,左 ...

  3. docker可视化管理工具对比 DockerUI Shipyard Rancher Portainer

    目录 1.前言 2.优劣对比 DockerUI Shipyard Rancher Portainer 1.前言 谈及docker,避免不了需要熟练的记住好多命令及其用法,对于熟悉shell.技术开发人 ...

  4. mac mysql 可视化工具_推荐3款好用的Redis、MySQL和MongoDB可视化管理工具

    学习编程时,总会遇到各种各样的数据库,比如Redis.MySQL或MongoDB.这些数据库都有一个共同特点:全是基于命令行操作,没有可视化管理界面. 比如,开启数据库服务的命令是这样的. 首先,以管 ...

  5. 地图漫游功能的具体体现_骏谷科技|数据中心三维可视化管理系统功能亮点

    原标题:骏谷科技|数据中心三维可视化管理系统功能亮点 数据中心三维可视化管理系统功能亮点,可视化管理系统为解决以上痛点应运而生.可视化管理系统结合了传统二维管理系统简单易用的特点,对资产数据等等数据进 ...

  6. yapi 插件_强大的开源API接口可视化管理平台——YAPI

    背景 在之前有些时日,曾经写过一个API管理平台--DOClever,但是总觉得界面上稍微差了点,刚好之前有朋友在评论区留言,让我知道了今天要介绍的这个平台YAPI,YApi 是一个可本地部署的.打通 ...

  7. Deepin/Linux系统使用GUFW可视化管理、配置防火墙规则

    对于没有接触过 Linux 的人,配置防火墙难于上青天,即便是缙哥哥这样玩过一丢丢的,也不喜欢用命令控制.所以,今天就给大家带来一款Deepin/Linux系统可视化管理.配置防火墙规则的软件--GU ...

  8. 可视化管理_供应链可视化管理的应用与展望

    一.供应链可视化定义及基本内容  1.供应链可视化的定义供应链可视化就是利用信息技术,采集.传递.存储.分析.处理供应链中的订单.物流以及库存等相关指标信息,按照需求以图形化的方式展现出来.2.供应链 ...

  9. 可视化管理_RFID技术实施智能仓储管理可视化

    仓储物流管理在各个行业都非常重要,RFID技术助力仓储物流信息管理提高供应链管理的透明度和库存周转率,这样有效减少缺货损失,提高企业内的仓储物流效率.仓库管理过程中,存在区域划分笼统,不容易辨识,货物 ...

  10. Kibana可视化管理页面详细使用说明

    Kibana可视化管理页面详细使用说明 使用浏览器访问 ip:5601 默认端口,进入首页 Discover:日志管理视图  主要进行搜索和查询 Visualize:统计视图      构建可视化的图 ...

最新文章

  1. 初中计算机word试题,初中计算机会考word试题WORD11
  2. Linux下实现文件双向同步
  3. 淡入淡出效果 || 高亮显示案例
  4. 麒麟系统兼容安卓生态 弥补生态短板
  5. GPU CUDA 经典入门指南
  6. java 方法 示例_Java语言环境getDisplayCountry()方法与示例
  7. PHP占用内存越来越多,解决phpQuery占用内存过多的问题
  8. 单体内置对象_单体内置对象
  9. D - 昂贵的聘礼(最短路径)
  10. 没有加载jawt导致java.lang.UnsatisfiedLinkError
  11. NLPIR/ICTCLAS 2015 分词系统使用
  12. 数字信号处理及其MATLAB实现总结
  13. 神经元图片结构图,一个神经元简图
  14. 2018.10.16 best-ks分箱
  15. 虚无缥缈的自信,一落千丈的打击
  16. MySQl 表基本查询操作
  17. Python Open3D点云配准点对点,点对面ICP(Iterative Closest Point)
  18. 电脑开飞行模式为什么还可以上网?
  19. 基于多模型融合的用户画像分析统计方法研究
  20. 自动上传本地图片和word图片(word图片需使用从word粘贴功能)

热门文章

  1. 在Linux系统部署docsify工具小记
  2. @Transactional注解失效场景之——同类中方法调用,事务失效
  3. C/C++和MFC的批处理特定文件
  4. java 接口传数组_Restful接口传递数组参数
  5. 《实战》基于情感词典的文本情感分析与LDA主题分析
  6. SIGIR‘22 推荐系统论文之对比学习篇
  7. 实战:第十七章:xlsx文件导入数据入库
  8. mysql数据库容灾方案_本地IDC机房数据库容灾解决方案
  9. 电脑下载的准考证去哪里了
  10. 华为olt ma5680t常用命令详解