Quartz.net使用笔记
一、需求场景:每天固定时间执行某个行为/动作。
一开始想用定时器,后来无意间发现了这个插件,感觉功能太强大了,完美解决了我的问题。
二、下载地址:https://www.quartz-scheduler.net/
也可以在项目中直接使用nugut进行下载
三、使用方法
1.将刚才下载的热乎乎的dll引入到你的项目中
2.先写你想定时执行的任务
public class ModifiyStateJob : IJob
{
Task IJob.Execute(IJobExecutionContext context)
{
Console.WriteLine("现在的时间是--{1}", DateTime.Now.ToString());
return null;
}
}
3.用Quartz设置在每天的19:53执行该任务
public static async Task ListenTime()
{
try
{
// Grab the Scheduler instance from the Factory
NameValueCollection props = new NameValueCollection
{
{ "quartz.serializer.type", "binary" }
};
StdSchedulerFactory factory = new StdSchedulerFactory(props);
IScheduler scheduler = await factory.GetScheduler(); // and start it off
await scheduler.Start(); // define the job and tie it to our HelloJob class
//
IJobDetail job1 = JobBuilder.Create<TimeJob>()
.WithIdentity("job1", "group1")
.Build(); //每天的19点53分执行 时间的顺序是秒 分 小时 不要写错哦
ITrigger trigger1 = TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.StartNow().WithCronSchedule("0 53 19 * * ?")
.Build(); // Tell quartz to schedule the job using our trigger
await scheduler.ScheduleJob(job1, trigger1); // some sleep to show what's happening
// await Task.Delay(TimeSpan.FromSeconds(60)); // and last shut down the scheduler when you are ready to close your program
// await scheduler.Shutdown();
}
catch (SchedulerException se)
{
Console.WriteLine(se);
} }
4.在入口处进行调用
static void Main(string[] args)
{
ListenTime().GetAwaiter().GetResult();
Console.Read();
}
5.效果(如果程序不关,则每天的19:53分都会运行该程序,在控制台进行打印)
备注:自己最近写的一个表达式(参考地址:https://www.cnblogs.com/sunjie9606/archive/2012/03/15/2397626.html)
//周一到周五 9点到18点,每一小时执行一次
ITrigger trigger1 = TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.StartNow().WithCronSchedule("0 0 9-18/1 ? * MON-FRI")
.Build();
写在后面的话:我只是用了Quartz的一个小功能,无论你是想固定时间执行任务,还是间隔多长时间执行任务等等,Quartz.net都能满足你的需求,只要按照指定的规则编写就可以啦。
Quartz.net使用笔记的更多相关文章
- Quartz.Net学习笔记
一.概述 Quartz.NET是一个强大.开源.轻量的作业调度框架,是 OpenSymphony 的 Quartz API 的.NET移植,用C#改写,可用于winform和asp.net应用中.它灵 ...
- Quartz.NET学习笔记(二) Job和JobDetails
Job和JobDetails的关系 接一篇的例子 ISchedulerFactory schedFact = new StdSchedulerFactory(); IScheduler sched = ...
- Quartz.NET学习笔记(三) 简单触发器
触发器是Quartz.NET的另外第一个核心元素,他有2种类型,简单触发器(Simple Trigger)和计划任务触发器(Cron Trigger), 一个触发器可以绑定一个任务. 通用触发器属性 ...
- Quartz.NET学习笔记(一) 简介
Quartz.NET是一款开源的任务调度框架,他是由Java中的任务调度框架Quartz移植而来的.官方网站https://www.quartz-scheduler.net/. Quartz.Net的 ...
- Spring框架中的Quartz定时任务使用笔记(通过@Scheduled注解的方式实现)
1.修改spring的xml配置信息 applicationContext.xml 三个部分内容 1.xmlns添加:xmlns:task="http://www.springframewo ...
- Quartz.Net学习笔记(2)-简介
一.Quartz.Net是什么 1.来源 Quartz.Net是一个开源的作业调度框架: 2.下载地址 官网地址:http://www.quartz-scheduler.net/documentati ...
- Quartz.Net学习笔记(1)-完整的例子
一.开发环境 系统:Win10 编译器:VS2013 .Net版本:4.5 Quartz版本:2.3.3 二.涉及程序集 Common.Logging.Core.dll Common.Logging. ...
- Quartz.NET学习笔记(四) 计划任务触发器
通常来说计划任务触发器会比简单触发器的使用频率高很多.如果你的任务是需要基于日历每天定时运行,那你就应该使用计划任务触发器,例如每周五中午12:00执行任务,或者每天早上9点执行任务. 计划任务表达式 ...
- SpringBoot中使用Quartz笔记
Quartz可以用来做什么? Quartz是一个任务调度框架,可用来做定时任务. 吧啦吧啦......... 还是直接上代码. application.properties 配置文件. * * ? ...
随机推荐
- 解决Mac下SourceTree每次都让输入密码的问题
在Mac上操作sourcetree当pull和push时每次都是让输入密码,非常烦人,虽然大概知道是因为SSH什么的问题,但搜索百度也没发现解决办法. 于是乎搜索谷歌,发现如下解决办法. Source ...
- AMD Ryzen一代、二代CPU一览表
Ryzen一代(14纳米).二代(12纳米)CPU一览表 http://img30.360buyimg.com/sku/jfs/t1/1134/23/12713/382299/5bd910f9E63b ...
- 【电脑】xshell报:需要Xmanager软件来处理X11转发请求
https://www.netsarang.com/zh/xmanager/ 下载了就好了 我的图片出不来,下了就好了.
- 前端 / JavaScript 导出PDF的实践
1.库:jspdf,自己定义一个高宽,如A4的210mm×297mm 2.让设计给背景图(包括:页眉页脚),水印图(背景透明,高宽和你的PDF单页一致)以及很多,能设计给的设计要给,因为在pdf上,排 ...
- LeetCode 691. Stickers to Spell Word
原题链接在这里:https://leetcode.com/problems/stickers-to-spell-word/ 题目: We are given N different types of ...
- Pandas | 22 时间差
时间差(Timedelta)是时间上的差异,以不同的单位来表示.例如:日,小时,分钟,秒.它们可以是正值,也可以是负值.可以使用各种参数创建Timedelta对象,如下所示 - 字符串 通过传递字符串 ...
- Educational Codeforces Round 78 (Rated for Div. 2) C - Berry Jam(前缀和)
- idea开发工具
IDEA简介 IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境.IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手.代码自动提示.重构.J2EE支 ...
- ESA2GJK1DH1K基础篇: 阿里云物联网平台: 测试云平台显示MQTT客户端发过来的消息
现在这里空空如也 咱自定义的也没有数据 现在就是传上来温度数据,让这里显示温度数据 你发布的主题 /sys/a1m7er1nJbQ/Mqtt/thing/event/property/post 发布 ...
- spring&pom两种获取profile的方式
一.原理: 1.实现ApplicationContextAware(当一个类实现了ApplicationContextAware这个接口之后,这个类就可以通过setApplicationContext ...