介绍
这篇文章将为大家详细讲解有关怎么在AspNet核心中实现一个web定时任务,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
<强>项目背景强>
采用复述,计数,设定每小时将当日累积数据持久化到关系型数据库sqlite。
添加石英。净Nuget依赖包:& lt; PackageReference包括=癚uartz"Version=?.0.6"/在
- <李>
①。定义定时任务内容:工作
李> <李>②。设置触发条件:触发
李> <李>③。将石英。净集成进AspNet核心
李><强>头脑风暴强>
IScheduler类包装了上述背景需要完成的第①②点工作,SimpleJobFactory定义了生成指定的工作任务的过程,这个行为是利用反射机制调用无参构造函数构造出的工作实例。下面是源码:
//- - - - - - - - - - - - - - - - -选自Quartz.Simpl.SimpleJobFactory类- - - - - - - - - - - - - using 系统; using Quartz.Logging; using Quartz.Spi; using Quartz.Util; namespace Quartz.Simpl { ,///& lt; summary>, ,///,default JobFactory used by Quartz 作用;simply calls ,///& lt;阅读cref=癘bjectUtils.InstantiateType {T}“,/祝辞,提醒,job 类。 ,///& lt;/summary> ,///& lt; seealso cref=癐JobFactory",/比; ,///& lt; seealso cref=癙ropertySettingJobFactory",/比; ,///& lt; author> James House ,///& lt; author> Marko Lahma (net) & lt;/author> ,public class SimpleJobFactory : IJobFactory ,{ private 才能static readonly  ILog log =, LogProvider.GetLogger (typeof (SimpleJobFactory));///才能,& lt; summary>///才能,nbsp; by 从而scheduler at 从而time of 从而trigger 点火,order 拷贝///才能,produce a & lt;阅读cref=癐Job",/祝辞,instance 提醒which 用call 执行。///才能,& lt;/summary>///才能,& lt; remarks>///才能,It should be extremely rare for 却;能够method 用throw an exception -///才能,basically only 从而case where there is no way at all 用实例化///才能,以及prepare 从而Job for 执行只When 从而exception is ,,///才能,Scheduler will move all triggers associated with 从而Job into ///才能,& lt;阅读cref=癟riggerState.Error",/祝辞,状态,which will require 人类///才能,intervention (如只an application restart after fixing 等等///才能,configuration problem led 用,issue with instantiating 从而工作)。///才能,& lt;/remarks>///才能,& lt; param name=癰undle"祝辞,TriggerFiredBundle 得到which 从而& lt;阅读cref=癐JobDetail",/比;///才能,以及other info relating 用,trigger firing 还要be 获得灵活;/param>///才能,& lt; param name=皊cheduler"祝辞& lt;/param>///才能,& lt; returns>从而newly instantiated Job///才能,& lt; throws>, SchedulerException if there is a problem instantiating 从而工作只& lt;/throws> public 才能virtual IJob  NewJob (TriggerFiredBundle 包,IScheduler 调度器) {才能 ,,IJobDetail jobDetail =, bundle.JobDetail; ,,Type jobType =, jobDetail.JobType; ,,试一试 ,,{ ,,,if (log.IsDebugEnabled ()) ,,,{ ,,,,log.Debug(美元“Producing  instance of Job & # 39; {jobDetail.Key} & # 39;,,类={jobType.FullName}“); ,,,} ,,,return ObjectUtils.InstantiateType(jobType); ,,} ,,catch (Exception e) ,,{ ,,,SchedulerException se =, new SchedulerException(美元“Problem  instantiating class & # 39; {jobDetail.JobType.FullName} & # 39;“,, e); ,,,throw se; ,,} ,,}///才能,& lt; summary>///才能,Allows 从而job factory 用摧毁/cleanup 从而job if 只需要///才能,No-op when using SimpleJobFactory。///才能,& lt;/summary> null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null 怎么在AspNet核心中实现一个web定时任务