Quartz.net使用笔记
2024-09-06 12:39:09
一、需求场景:每天固定时间执行某个行为/动作。
一开始想用定时器,后来无意间发现了这个插件,感觉功能太强大了,完美解决了我的问题。
二、下载地址: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都能满足你的需求,只要按照指定的规则编写就可以啦。
最新文章
- 算法与数据结构(十一) 平衡二叉树(AVL树)
- 本周进步要点20161023(含李笑来第二场live笔记要点)
- UVAoj 11324 - The Largest Clique(tarjan + dp)
- CSS3 选择器——伪类选择器
- PHP Error 和 Logging 函数
- [HTML]表格的一切
- poj 3352 Road Construction【边双连通求最少加多少条边使图双连通&;&;缩点】
- Android 颜色配置表-颜色类
- SQLSERVER2008 显示列信息,包含扩展属性
- linux LVM 逻辑卷
- SQL Server数据库优化的10多种方法
- 将已经存在的异步请求callback转换为同步promise
- BGP:我们不生产路由,而是路由的搬运工
- HTML中<;script>;的defer属性与async属性
- PHP中获取当前页面的URL信息
- Listview 包含 edittext 的解决方案
- 解决 Ubuntu 经常 卡死
- MyBatis-Plus的简单使用
- javascript 浮点数比较
- kali2016.1 基本配置