怎么在AspNet核心中实现一个web定时任务

  介绍

这篇文章将为大家详细讲解有关怎么在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定时任务