Quartz.Net 任务调度之简单任务(1)
本文github链接
下面的代码对应这个项目看

三个对象
1.IScheduler
2.IJobDetail
3.ITrigger
第一步,选创建一个任务单元(修建火车道)
#region 创建单元 (时间轴/载体)
StdSchedulerFactory factory = new StdSchedulerFactory();
IScheduler scheduler = await factory.GetScheduler();
await scheduler.Start();
#endregion
第二步,创建一个任务(造火车)
#region job
IJobDetail jobDetail = JobBuilder.Create<HelloJob>()
.WithDescription("this is a job")
.WithIdentity("job1", "group1")
.Build();
#endregion
WithIdentity():
第一个参数(job1):给当前任务起个名字(行动代号)
第二个参数(group1):分组,因为这个任务可以是多个,也可以是多组,分类一下
HelloJob.cs
using Quartz;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace DayWorkCloseService.DayWorkClose
{
public class HelloJob : IJob
{
public async Task Execute(IJobExecutionContext context)
{
await Task.Run(() => { Console.WriteLine($@"{"张翼德"}"+DateTime.Now + ""); });
}
}
}
第三步 配置时间策略(确定发车时间)
#region 时间策略
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.StartNow()
.WithSimpleSchedule(x => x
.WithIntervalInSeconds()
.WithRepeatCount())
.Build();
#endregion
WithIdentity():同上
startNow():立即开始一次
WithIntervalInSeconds():一秒一次
WithRepeatCount():最大执行10000次
4. 把任务和时间策略承载到任务单元中 (喝壮行酒,准备上路)
await scheduler.ScheduleJob(jobDetail, trigger);
完整的代码 这个是我新建了一个类库,调用不在这里
using DayWorkCloseService.DayWorkClose;
using Quartz;
using Quartz.Impl;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace DayWorkCloseService
{
public class DayWorkCloseManager
{ public static async Task Init()
{
try
{
#region 创建单元 (时间轴/载体)
StdSchedulerFactory factory = new StdSchedulerFactory();
IScheduler scheduler = await factory.GetScheduler();
await scheduler.Start();
#endregion #region job
IJobDetail jobDetail = JobBuilder.Create<HelloJob>()
.WithDescription("this is a job")
.WithIdentity("job1", "group1")
.Build();
#endregion #region 时间策略
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.StartNow()
.WithSimpleSchedule(x => x
.WithIntervalInSeconds()
.WithRepeatCount())
.Build();
#endregion // Tell quartz to schedule the job using our trigger
await scheduler.ScheduleJob(jobDetail, trigger); }
catch (SchedulerException se)
{
Console.WriteLine(se);
}
}
}
}
准备都做完了,现在开始调用,就一句话,不对,两句
DayWorkCloseManager.Init().GetAwaiter().GetResult(); Console.Read();//这个一定要
done
Quartz.Net 任务调度之简单任务(1)的更多相关文章
- 项目一:第十四天 1.在realm中动态授权 2.Shiro整合ehcache 缓存realm中授权信息 3.动态展示菜单数据 4.Quartz定时任务调度框架—Spring整合javamail发送邮件 5.基于poi实现分区导出
1 Shiro整合ehCache缓存授权信息 当需要进行权限校验时候:四种方式url拦截.注解.页面标签.代码级别,当需要验证权限会调用realm中的授权方法 Shiro框架内部整合好缓存管理器, ...
- Quartz.Net 任务调度
基于ASP.NET MVC(C#)和Quartz.Net组件实现的定时执行任务调度 在之前的文章<推荐一个简单.轻量.功能非常强大的C#/ASP.NET定时任务执行管理器组件–FluentSch ...
- Spring Quartz实现任务调度
任务调度 在企业级应用中,经常会制定一些"计划任务",即在某个时间点做某件事情 核心是以时间为关注点,即在一个特定的时间点,系统执行指定的一个操作 任务调度涉及多线程并发.线程池维 ...
- Quartz实现任务调度
一.任务调度概述 在企业级应用中,经常会制定一些"计划任务",即在某个时间点做某件事情,核心是以时间为关注点,即在一个特定的时间点,系统执行指定的一个操作,任务调度涉及多线程并发. ...
- quartz.net任务调度:源码及使用文档
目录: 1.quartz.net任务调度:源码及使用文档 2.quartz.net插件类库封装 前言 前段时间把自己封装quartz.net 类库的过程总结到博客园,有网友想要看一下源码,所以就把源码 ...
- 项目ITP(五) spring4.0 整合 Quartz 实现任务调度
前言 系列文章:[传送门] 项目需求: 二维码推送到一体机上,给学生签到扫描用.然后需要的是 上课前20分钟 ,幸好在帮带我的学长做 p2p 的时候,接触过.自然 quartz 是首选.所以我就配置了 ...
- Java&Quartz实现任务调度
目录 Java&Quartz实现任务调度 1.Quartz的作用 2.预备 3.Quartz核心 3.1.Job接口 3.2.JobDetail类 3.3 JobExecutionContex ...
- Quartz.Net任务调度框架
Quartz.Net是一个开源的任务调度框架,非常强大,能够通过简单的配置帮助我们定时具体的操作. 相对于我们用的线程里面while(true)然后sleep来执行某个操作,应该算的上是高端,大气,上 ...
- ASP.NET MVC5 实现基于Quartz.NET任务调度
工作之余.技术?.记是不可能记住的. 只有写点东西 才能维持得了生活这样子的.好早就像写一篇关于任务调度的文章.终究是太懒了 一.Quartz.NET介绍 Quartz.NET是一个强大.开源.轻量的 ...
随机推荐
- VueJS基础框架代码介绍
参考文档 https://vuejs.bootcss.com/v2/api/ https://router.vuejs.org/zh-cn/essentials/getting-started.htm ...
- Delphi读取和写入utf-8编码格式的文件
读取UTF-8格式的文件内容 function LoadUTF8File(AFileName: string): string; var ffileStream:TFileStream; fAnsiB ...
- VSphere随笔 - vCenter6.5安装配置手册
一.前期准备: 1.物理机准备 一台已安装了ESXI虚拟化系统的机器: 2.DNS服务器准备 新建一台DNS服务器,添加vcenter的双向解析. (1)安装一台win2008的机器 (2)开启DNS ...
- CF560补题
D题:用来对比的vector<long long> b不能被初始化大小成n,因为a里面有n个因子,但是这是可能存在遗漏情况的.如果刚好是遇到实际因子远多于n,那么就会在运行过程中出错. 还 ...
- VB - sendKey
Set WshShell=WScript.CreateObject("WScript.Shell") WshShell = SendKeys string “string”:表示要 ...
- smartforms 字段文本碰见 "-" 自动换行
长文本会在 '-' 这个符号处自动换行 原理:SAP 标准SMARTFORMS 的功能,遇到 '-' 自动判断后面字段是否能在本行完全显示,不够则换行 注意:如果一行文本有多个 ‘-’ ,则 判断 ' ...
- Windows server 2016远程桌面登录和修改3389端口
- C#设计模式:模板方法模式(Template Method)
一,我们为什么需要模板设计模式? 在程序设计中,可能每个对象都有共同的地方,而此时如果每个对象定义一次,如下例子,每个对象都写Stay()方法,这样在每个类中都有很多相同的代码,此时,我们需要用到模板 ...
- 关于清除浮动的n中方式
我们在对页面进行布局的时候经常会用到浮动布局,浮动布局能够很好的实现我们想要的布局效果,同时兼容方面也是很好的,但是当我们在用左右浮动进行页面布局的时候,由于元素浮动脱了了文档流导致浮动元素的父级高度 ...
- 【记录】vue相关知识点
let let是es6新引入的命令,与var命令类似,但是let是声明的局部变量,只在所在代码块中有效. ES5 只有全局作用域和函数作用域,没有块级作用域,这带来很多不合理的场景. var s = ...