Quartz系列(一):基础介绍
新建一个.NET Core控制台项目,NuGet引用Quartz引用。
class Program
{
static void Main(string[] args)
{
var task = Task.Run(async () => await RunScheduler());
task.Wait(); Console.Read();
} public static async Task RunScheduler()
{
//创建作业调度器
ISchedulerFactory factory = new StdSchedulerFactory();
IScheduler scheduler = await factory.GetScheduler(); //启动调度器
await scheduler.Start(); //创建作业
IJobDetail job = JobBuilder.Create<HelloJob>()
.WithIdentity("job1", "group1")
.Build(); //创建触发器 每10秒执行一次
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.StartNow()
.WithSimpleSchedule(x => x
.WithIntervalInSeconds()
.RepeatForever())
.Build(); //加如到作业调度器
await scheduler.ScheduleJob(job, trigger);
} public class HelloJob:IJob
{
/// <summary>
/// 作业调度定时执行的方法
/// </summary>
public async Task Execute(IJobExecutionContext context)
{
await Console.Out.WriteLineAsync("Hello QuartzNet...");
}
}
}
Quartz接口说明:
JobBuilder:定义 JobDetail 实例
IJobDetail:定义 Job 实例及其它相关的静态信息
IJob:自定义的作业模块所要继承的接口,调度器会调用这个实现
TriggerBuilder:定义 Trigger 实例
ITrigger:定义 Job 被触发的时间
Quartz运行流程:
1.创建作业调度器 IScheduler
2.启动调度器
3.创建作业 IJobDetail
4.创建触发器 ITrigger
5.将作业和触发器加入到作业调度器中
代码说明:
代码说明:
通过 StdSchedulerFactory 获取到调度工厂 ISchedulerFactory,通过调度工厂的 GetScheduler 方法获取到一个调度器 scheduler 。初始化调度器 scheduler 之后, 就可以启动、 备用、 关闭。
通过 JobBuilder 创建一个 IJobDetail 作业详情 ,指定一个 IJob 的实现类 HelloJob ,同时指定了作业详情标识的键名和组名。
通过 TriggerBuilder 创建一个 ITrigger 触发器,指定了这个触发器标识的键名和组名,触发器只有在启动状态才能工作,这里设置了 StartNow,同时设置了触发器的执行时间,每隔10s执行一次。当 Trigger 触发的时候, HelloJob 的Execute(..) 方法就会在调度器 scheduler 的工作线程中执行,
这里设置的 RepeatForever 是指在当前守护进程内重复执行,如果程序被关闭了,那必然不会继续执行。

Quartz理论:
具体cron语法参考这篇文章http://www.jianshu.com/p/9027d067ac5b
Quartz系列(一):基础介绍的更多相关文章
- 【01】emmet系列之基础介绍
[01]emmet系列之基础介绍 [02]emmet系列之HTML语法 [03]emmet系列之CSS语法 [04]emmet系列之编辑器 [05]emmet系列之各种缩写 相关网址 官网:http: ...
- QUARTZ系列之一-基础概念(Scheduler/Job/JobDetail/Trigger)
摘抄自quartz官方文档: The key interfaces of the Quartz API are: Scheduler - the main API for interacting wi ...
- Logstash学习系列之基础介绍
Logstash功能特性 能集中处理各种类型的数据 能标准化不同模式和格式的数据 能快速的扩展自定义日志的格式 它具有收集,分析和转发数据流的功能 Logstash运行参数 -f 指定配置文件 -e ...
- openresty开发系列13--lua基础语法2常用数据类型介绍
openresty开发系列13--lua基础语法2常用数据类型介绍 一)boolean(布尔)布尔类型,可选值 true/false: Lua 中 nil 和 false 为"假" ...
- 「译」JUnit 5 系列:基础入门
原文地址:http://blog.codefx.org/libraries/junit-5-basics/ 原文日期:25, Feb, 2016 译文首发:Linesh 的博客:JUnit 5 系列: ...
- [WPF系列]从基础起步学习系列计划
引言 WPF技术已经算不什么新技术,一搜一大把关于WPF基础甚至高级的内容.之前工作中一直使用winform所以一直没有深入学习WPF,这次因项目中使用了WPF技术来实现比较酷的展示界面.我在这里只是 ...
- WPF入门教程系列二——Application介绍
一.Application介绍 WPF和WinForm 很相似, WPF与WinForm一样有一个 Application对象来进行一些全局的行为和操作,并且每个 Domain (应用程序域)中仅且只 ...
- 快速入门系列--WebAPI--01基础
ASP.NET MVC和WebAPI已经是.NET Web部分的主流,刚开始时两个公用同一个管道,之后为了更加的轻量化(WebAPI是对WCF Restful的轻量化),WebAPI使用了新的管道,因 ...
- .NET 4 并行(多核)编程系列之一入门介绍
.NET 4 并行(多核)编程系列之一入门介绍 本系列文章将会对.NET 4中的并行编程技术(也称之为多核编程技术)以及应用作全面的介绍. 本篇文章的议题如下: 1. 并行编程和多线程编程的区别. ...
- (C#)Windows Shell 编程系列1 - 基础,浏览一个文件夹
原文 (C#)Windows Shell 编程系列1 - 基础,浏览一个文件夹 (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) Windows Shell 编程,即 Windows ...
随机推荐
- Markdown实用技巧整理
标题 段落 列表 引用 代码块 链接 图片 一.标题 一级标题 二级标题 三级标题 四级标题 五级标题 六级标题 二.段落 1.换行: 2.加粗: 3.分割线: 4.删除线: deprecated 5 ...
- gym/102021/J GCPC18 模拟拼图
模拟拼图 题意: 给定n块拼图,每个拼图为四方形,对应四条边有四个数字,如果为0,表示这个边是在边界的,其他数字表示和另一个拼图的一条边相接.保证每个非零数只出现两次. 思路: 模拟,但是要注意几个情 ...
- CF 435B Little Pony and Harmony Chest
Little Pony and Harmony Chest 题解: 因为 1 <= ai <= 30 所以 1 <= bi <= 58, 因为 59 和 1 等效, 所以不需 ...
- java hdu A+B for Input-Output Practice (IV)
A+B for Input-Output Practice (IV) Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/327 ...
- SpringBoot集成Zipkin实现分布式全链路监控
目录 Zipkin 简介 Springboot 集成 Zipkin 安装启动 zipkin 版本说明 项目结构 工程端口分配 引入 Maven 依赖 配置文件.收集器的设置 编写 Controller ...
- Erlang中的RSA签名
RSA签名校验 -spec check_rsa_sign(DataBin, Sign, RSAPublicKeyBin, DigestType) -> boolean when DataBin ...
- Mybatis系列(二)配置
Mybatis系列(二)配置 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configu ...
- JAVA MAP转实体
public static <T> T map2Object(Map<String, Object> map, Class<T> clazz) { SimpleDa ...
- iOS 13 绕过锁屏密码漏洞
iOS 13 很快就要发布了,在未正式发布之前,西班牙的安全研究员 Jose Rodriguez 公开了一个漏洞,能够查绕过锁屏密码查看通讯录.照片.短信. 在 iOS 设备上,当屏幕锁定时,用户无法 ...
- 调用webservice获取电话号码归属地信息
首先什么是webservice ? 从广义上面讲,任何一个服务器所提供的"数据","内容","方法"等等都可以理解为webservice. ...