一、需求场景:每天固定时间执行某个行为/动作。

  一开始想用定时器,后来无意间发现了这个插件,感觉功能太强大了,完美解决了我的问题。

二、下载地址: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都能满足你的需求,只要按照指定的规则编写就可以啦。

最新文章

  1. 算法与数据结构(十一) 平衡二叉树(AVL树)
  2. 本周进步要点20161023(含李笑来第二场live笔记要点)
  3. UVAoj 11324 - The Largest Clique(tarjan + dp)
  4. CSS3 选择器——伪类选择器
  5. PHP Error 和 Logging 函数
  6. [HTML]表格的一切
  7. poj 3352 Road Construction【边双连通求最少加多少条边使图双连通&amp;&amp;缩点】
  8. Android 颜色配置表-颜色类
  9. SQLSERVER2008 显示列信息,包含扩展属性
  10. linux LVM 逻辑卷
  11. SQL Server数据库优化的10多种方法
  12. 将已经存在的异步请求callback转换为同步promise
  13. BGP:我们不生产路由,而是路由的搬运工
  14. HTML中&lt;script&gt;的defer属性与async属性
  15. PHP中获取当前页面的URL信息
  16. Listview 包含 edittext 的解决方案
  17. 解决 Ubuntu 经常 卡死
  18. MyBatis-Plus的简单使用
  19. javascript 浮点数比较
  20. kali2016.1 基本配置

热门文章

  1. Linux shell if条件判断1
  2. python实现生产者消费者模型
  3. IoU与非极大值抑制(NMS)的理解与实现
  4. USB设备驱动程序1
  5. contact form 7如何搭配Akismet过滤垃圾邮件
  6. Iptables不适用与socks协议吗?
  7. docker nginx 命令。
  8. c# 关于反射
  9. 关于DML的一些使用
  10. IIS添加MIME类型.woff/.svg/.woff2/.eot/.otf.ttf