8、Asp.net【c#】ItemDoc项目—Quartz.ne

2019-02-20  本文已影响0人  Net的搬运工

Quartz.NET是一个强大、开源、轻量的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。它有很多特征,如:数据库支持,集群,插件,支持cron-like表达式等等。 你曾经需要应用执行一个任务吗?这个任务每天或每周星期二晚上11:30,或许仅仅每个月的最后一天执行。一个自动执行而无须干预的任务在执行过程中如果发生一个严重错误,应用能够知到其执行失败并尝试重新执行吗?你和你的团队是用.NET编程吗?如果这些问题中任何一个你回答是,那么你应该使用Quartz.NET调度器。 Quartz.NET允许开发人员根据时间间隔(或天)来调度作业。它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器关联。整合了 Quartz.NET的应用程序可以重用来自不同事件的作业,还可以为一个事件组合多个作业.

下面是官方的开发指南教程的中文版:英文版的参照官方网站
https://www.quartz-scheduler.net/


你曾经需要应用执行一个任务吗?这个任务每天或每周星期三晚上9:30,或许仅仅每个月的最后一天执行,或许仅仅每个周三执行。一个自动执行而无须干预的任务在执行过程中如果发生一个严重错误,应用能够知到其执行失败并尝试重新执行吗?你和你的团队是用.NET编程吗?如果这些问题中任何一个你回答是,那么你应该使用Quartz.NET调度器。 Quartz.NET允许开发人员根据时间间隔(或天)来调度作业。它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器关联。整合了 Quartz.NET的应用程序可以重用来自不同事件的作业,还可以为一个事件组合多个作业。

解惑:
  需求1:也就是我们常说的定时任务,简单一点的可以借助Timer类来实现,对时间要求复杂的需要借助第三方的框架来实现,如:Quartz.Net.
  需求2:需要我们动态配置定时任务的执行时间。
  需求3:需要我们自己搭建一个定时调度框架,然后来动态配置任务的开启、关闭和触发器的情况。

Quartz.Net简介

Github 获取代码示例:https://github.com/quartznet/quartznet

它有几大优势:

a.持久化数据库:SQLServer、MySQL、MongoDB、Redis
  b.集群支持:双机热备
  c.支持Web B/S架构和WinForm C/S架构
  d.trigger可以灵活的控制时间各类苛刻的时间要求
2. Quartz.Net框架的使用

引入方式:

1. 到https://www.quartz-scheduler.net/ 下载 Quartz.NET,最新版本是3.0.7

Grab it from NuGet
Install-Package Quartz

or ZIP from GitHub releases

https://github.com/quartznet/quartznet

PS:目前最新版本为3.0.7(2019-02-20),这里采用的是3x起支持.netcore,且基本用法发生一些变化,最好使用vs2017

基本使用:

a.创建作业调度池(Scheduler)

b.创建一个具体的作业即job (具体的job需要单独在一个文件中执行)

c.创建并配置一个触发器即trigger

d.将job和trigger加入到作业调度池中

e.开始调度 start

3. 官方地址

官网:http://www.quartz-scheduler.net/

示例:

上一篇下一篇

猜你喜欢

热点阅读