博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
定时器--Quartz.Net
阅读量:4635 次
发布时间:2019-06-09

本文共 3737 字,大约阅读时间需要 12 分钟。

这次由于项目的需求:什么定时发送邮件通知,定时筛选取消客户下单未支付的订单

重新捡起定时器,在网上翻来找去找到----Quartz.Net老字号了并不表示它就真的老了哦

github:

当然介绍的园子里文章很多跟官方文档介绍的都挺清楚的!用起来很简便!

so!接下来我简单介绍一下Quartz.Net框架设计  下图借用园友的应该不会介意

 

园子中搜索发现已经有同学去实践了,这里引用一下各位大大的博文地址(应该不会介意,嘻嘻),大家也可以参考学习:

 Quartz.net持久化与集群部署开发详解
 Net作业调度(四)—quartz.net持久化和集群
 任务调度之持久化(基于Quartz.net)
 任务调度之集群(基于Quartz.net)
 使用sqlserver搭建高可用双机热备的Quartz集群部署【附源码】

在此博主自己将Quartz.net的所需类目做了一次整合,大伙可以瞅瞅

1 using Quartz; 2 using Quartz.Impl; 3 using System; 4 using System.Collections.Generic; 5 using System.Linq; 6 using System.Text; 7 using System.Threading.Tasks; 8 using Wshelper.Caching; 9 using Wshelper.Logging;10 11 namespace Commons.Helpers12 {13     public class QuartzHelper14     {15         /// 16         /// 时间间隔执行任务17         /// 18         /// 
任务类,必须实现IJob接口
19 /// 时间间隔(单位:毫秒)20 public static void ExecuteInterval
(int seconds) where T : IJob21 {22 ISchedulerFactory factory = new StdSchedulerFactory();23 IScheduler scheduler = factory.GetScheduler();24 25 //IJobDetail job = JobBuilder.Create
().WithIdentity("job1", "group1").Build();26 IJobDetail job = JobBuilder.Create
().Build();27 28 ITrigger trigger = TriggerBuilder.Create()29 .StartNow()30 .WithSimpleSchedule(x => x.WithIntervalInSeconds(seconds).RepeatForever())31 .Build();32 33 scheduler.ScheduleJob(job, trigger);34 35 scheduler.Start();36 }37 ///
38 /// 指定时间执行任务39 /// 40 ///
任务类,必须实现IJob接口
41 ///
cron表达式,即指定时间点的表达式42 public static void ExecuteByCron
(string cronExpression) where T : IJob43 {44 ISchedulerFactory factory = new StdSchedulerFactory();45 IScheduler scheduler = factory.GetScheduler();46 47 IJobDetail job = JobBuilder.Create
().Build();48 49 //DateTimeOffset startTime = DateBuilder.NextGivenSecondDate(DateTime.Now.AddSeconds(1), 2);50 //DateTimeOffset endTime = DateBuilder.NextGivenSecondDate(DateTime.Now.AddYears(2), 3);51 52 ICronTrigger trigger = (ICronTrigger)TriggerBuilder.Create()53 //.StartAt(startTime).EndAt(endTime)54 .WithCronSchedule(cronExpression)55 .Build();56 57 scheduler.ScheduleJob(job, trigger);58 59 scheduler.Start();60 61 //Thread.Sleep(TimeSpan.FromDays(2));62 //scheduler.Shutdown();63 }64 }65 66 #region 任务执行例67 public class MyJob : IJob68 {69 ILogger logger = LoggerFactory.CreateLog();70 public void Execute(IJobExecutionContext context)71 {72 //向c:\Quartz.txt写入当前时间并换行73 //System.IO.File.AppendAllText(@"c:\Quartz.txt", DateTime.Now + Environment.NewLine);74 ICache cache = new MemoryCacheFactory().Create();75 cache.Clear();76 logger.Info("时间:" + DateTime.Now.ToString() + "---------系统自动更新缓存!");77 }78 }79 #endregion80 }
View Code

 

启动:

1 public static void QuartzHelp()2         {3             //#region Quartz调度任务4             string cronExpression = "1 0 0 * * ? ";  //这是指每天的0点执行任务5             QuartzHelper.ExecuteByCron
(cronExpression);  //这是调用Cron计划方法6 //#endregion7 }
View Code

 

 

Quartz.Net 作者已经更新了支持.net standrad2.0了,就意味着可以在.net core平台使用了,下载地址:,更新说明地址:,相信不久之后就会发布release版本,届时.net core框架开发就不怕没有定时器的支持了,~( ̄▽ ̄~)(~ ̄▽ ̄)~

 

转载于:https://www.cnblogs.com/Agui520/p/8142956.html

你可能感兴趣的文章
转 [JAVA] 使用 common-fileupload 实现文件上传
查看>>
十五天精通WCF——第三天 client如何知道server提供的功能清单
查看>>
构建之法阅读笔记04
查看>>
Python - selenium_WebDriver 鼠标键盘事件
查看>>
oracle创建DBLink连接
查看>>
spark+openfire即时通讯工具二次开发参考文档
查看>>
java.util.concurrent包API学习笔记
查看>>
从技术细节看美团的架构
查看>>
Odoo进销存业务学习笔记
查看>>
c++标准库 及 命名空间std
查看>>
【POJ1113】Wall(凸包)
查看>>
SD.Team颜色代码大全
查看>>
使用按钮控制HTML5背景音乐开关
查看>>
[spring-boot] 多环境配置
查看>>
mongodb插入数据获取本次插入的mongodb id
查看>>
JAVA面试相关基础知识
查看>>
自定义Spring ApplicationContext 支持动态订阅spring配置
查看>>
如何学习web前端
查看>>
关于HTML代码的转义
查看>>
linux(以ubuntu为例)下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件...
查看>>