.NET中Quartz任务调度器的简单应用实例
1.首先从NuGet中安装Quartz,安装最新版本就OK
2.新建一个Job类实现Quart中的IJob接口用于执行业务逻辑,代码如下:
class CheckUpdateJob : IJob
{ public async Task Execute(IJobExecutionContext context)
{
//在此处实现业务
}
}
3.新建一个任务执行类用于启动任务,代码如下:
class JobController
{
//调度器
IScheduler scheduler;
//调度器工厂
ISchedulerFactory factory;
//执行时间间隔
private int checkInternal = int.Parse(ConfigurationManager.AppSettings["CheckInternal"]);
public async Task Start()
{
factory = new StdSchedulerFactory();
scheduler = await factory.GetScheduler();//创建一个任务
IJobDetail jobCheck = JobBuilder.Create<CheckUpdateJob>().WithIdentity("check", "other").Build();
//创建一个触发器
ITrigger checkTrigger = TriggerBuilder.Create()
.WithIdentity("check", "other")
.WithSchedule(SimpleScheduleBuilder.Create().WithIntervalInSeconds(checkInternal).RepeatForever())
.StartNow()
.Build();
//把任务和触发器加入调度器中
await scheduler.ScheduleJob(jobCheck, checkTrigger); //开始执行
await scheduler.Start();
}
}
对于标黄色部分做简单说明
CheckUpdateJob:毫无疑问就是你的Job类。从源码里面看必须是需要实现IJob接口的类,源码如图:

check:自定义的Job别名,当有很多的Job需要执行的时候,可以使用别名区分。
other:自定义分组别名,当你有多Job的时候可以把Job进行分组,例如:订单,数据清理等;当你需要对Job管理的时候便会派上用场。
ITrigger 中的check,other道理同上
checkInternal:这个参数为轮询间隔秒数,这里我只做个简单间隔秒数轮询方式执行Job,其内置了丰富的方式。比如:每月的第几号,每周的星期几,上午或者下午时间点等
其他更多的应用可自行度娘或者看官方文档吧!
4.最后调用Start()即可,代码如下:
static void Main(string[] args)
{
JobController controller = new JobController();
var t = controller.Start();
t.Wait();
Console.Read();
}
.NET中Quartz任务调度器的简单应用实例的更多相关文章
- 在springboot项目中引入quartz任务调度器。
quartz是一个非常强大的任务调度器.我们可能使用它来管理我们的项目,常见的是做业绩统计等等.当然它的功能远不止这些.我们在这里不介绍quartz的原理,下面讲讲如何在springboot中使用qu ...
- C#中的索引器的简单理解和用法
索引器是一种特殊的类成员,它能够让对象以类似数组的方式来存取,使程序看起来更为直观,更容易编写. 1.索引器的定义 C#中的类成员可以是任意类型,包括数组和集合.当一个类包含了数组和集合成员时,索引器 ...
- [原创] 关于quartz (spring 中的任务调度器)时间配置
1. CronTrigger时间格式配置说明 CronTrigger配置格式: 格式: [秒] [分] [小时] [日] [月] [周] [年] 序号 说明 是否必填 允许填写的值 允许的通配符 ...
- Spring中Quartz调度器的使用
一.Quartz的特点 * 按作业类的继承方式来分,主要有以下两种: 1.作业类继承org.springframework.scheduling.quartz.QuartzJobBean类的方式 2. ...
- java Quartz任务调度器
1.quarz对java1.5实现的简单调度做了封装 /** * quartz对任务调度进了高度抽象: 1调度器:2任务:3触发器 * Job接口(任务):定义需要调度的任务 ...
- Quartz任务调度器
在使用jdk的timer时发现无法满足开发需求:即无法在指定的日期进行执行任务. 这便引入一个优秀的开源任务调度框架“quartz”. 这里加入的是quartz-1.8.6版本.Quart的官网: ...
- Python中的装饰器的简单介绍02
这篇博文转载自伯乐在线的12步轻松搞定python装饰器,重构成python3. 1. 函数 在python中,函数通过def关键字.函数名和可选的参数列表定义.通过return关键字返回值.我们举例 ...
- Python中的装饰器的简单介绍01
一. 装饰器是什么? 简单来说,装饰器其实也就是一个函数,一个用来包装函数的函数,返回一个修改之后的函数对象,将其重新赋值原来的标识符,并永久丧失对原始函数对象的访问. 二.装饰器语法 (1)无参数装 ...
- Spring MVC中自定义拦截器的简单示例
1. 引言 拦截器(Interceptor)实现对每一个请求处理前后进行相关的业务处理,类似于Servlet的Filter. 我们可以让普通的Bean实现HandlerIntercpetor接口或继承 ...
随机推荐
- Strut2开发经验总结
1.如何在html静态页面中使用struts tomcat目录/conf/web.xml 文件中,找到 <servlet-mapping> <servlet-name>jsp& ...
- 读写JSON作配置文件
个人不太喜欢XML,于是找了JSON来做配置,JSON虽然有很多引号,但这种key-value的形式,非常符合我的思维,就像是一个萝卜一个坑.最近在读写JSON文件,需要注意两个问题. 中文乱码: 直 ...
- 第六章 函数、谓词、CASE表达式 6-2 谓词
一.什么是谓词 需要满足返回值为真值的函数.谓词的返回值全都是真值(TRUE/ FALSE/UNKNOWN) 如:LIKE/BETWEEN /IS NULL/IS NOT NULL/IN/EXISTS ...
- Redis 入门之基础
1.安装 redis-windows redis服务端下载 redis客户端下载 redis官网 redis中文网 1.1 Window下安装 redis-server.exe redis.windo ...
- 如何打包ipa文件
如何打包ipa文件 1. 新建一个工程 // // RootViewController.m // YouXianMing // // Copyright (c) 2014年 Y.X. All rig ...
- mysql内存评估计算
这是一个可以评估mysql内存使用大小的网站,根据一些基本的参数,来确定的. 网站:http://www.mysqlcalculator.com/
- magento2 重置后台密码
项目根目录:运行如下命令 bin/magento admin:user:create --admin-user="admin" --admin-password="123 ...
- PHP SFTP应用(二)
SFTP应用(二) SFTP Server SSH2 sftp操作 FTP进行文件传输需要通过端口进行.一般所需端口为: 控制链路—TCP端口21.控制器端.用于发送指令给服务器以及等待服务器响应. ...
- C++浅拷贝和深拷贝的区别
C++浅拷贝和深拷贝的区别 2012-04-24 21:22 11454人阅读 评论(6) 收藏 举报 c++deleteclass编译器c c++默认的拷贝构造函数是浅拷贝 浅拷贝就是对象的数据成员 ...
- 关于strip(切割)和 split(分开) 的区别
plit(), 以括号里的东西为标准,把字符串分开成一个列表 strip(), "删除",括号里出现的东西,从两头开始往中间删除,直到遇到阻碍.中间就算有,也不会受影响 s10 = ...