栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

C# quartz.net 定时任务(三)

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C# quartz.net 定时任务(三)

文章目录
    • Scheduler
    • 其他
    • quartz和timer的区别
    • web环境下IIS搞事情

Scheduler

quartz想要运行,需要先配置好TreadPool,JobStore,DataSource,Scheduler

  • TreadPool的默认实现DefaultThreadPool可以配置最大并发数等属性,也说明quartz的定时任务都是在后台执行的。
  • JobStore和DataSource上一节说过了,一般使用默认值不用配置。
  • Scheduler需要最后配置,生成实例并关联JobStore和ThreadPool。

StdSchedulerFactory
绝大多数情况下使用的Scheduler工厂。
ISchedulerFactory的一个实现类,调用GetScheduler方法就可以初始化一个Scheduler(包括关联的ThreadPool、JobStore和DataSources)。


DirectSchedulerFactory
除非特别了解Scheduler工厂,否则一般不使用这个类。
使用这个工厂需要手动配置工厂的所有属性。


Logging
quartz默认使用LibLog来做日志记录,LibLog只会记录初始化信息和job在excute时候报错的信息,也可以自行选择使用Log4Net来代替默认的日志


集群Cluster
集群配置只能在JobStore使用JobStoreTx的情况下使用。
进行如下配置:
quartz.jobStore.clustered=true
集群里面的实例都需要使用相同的quartz配置,除了以下两个属性:

  • ThreadPool的pool size
  • quartz.scheduler.instanceId(设置成Auto之后会自动区别)一定要唯一

注意1:如果定时任务集群要使用多台服务器,那么这些服务器上的时间要是一致的!
注意2:非集群的两个定时任务,不要用JobStoreTx关联同一个数据库!
注意3:如果cpu性能不够,已经100%使用的CPU无法及时更新数据库里面的jobStore数据,会引发job多次execute

其他

Quartz.Jobs命名空间提供了一些特殊的Job,实现发送邮件等功能。
但是这是一个单独的NuGet包,如果需要请安装Quartz.Jobs
Install-Package Quartz.Jobs -Version 3.2.3

JobFactory
默认的JobFactory,在trigger触发的时候,会创建Job的实例。
实现IJobFactory接口,可以自定义JobFactory,来实现自己需要的功能,例如:由应用中的IoC或者DI容器来创建Job实例的功能。

quartz主要配置信息可以查看:https://www.quartz-scheduler.net/documentation/quartz-3.x/configuration/reference.html

quartz和timer的区别

framework自带的system.timers.timer类也可以用来做任务,但是选择quartz的理由如下:

  • timer做定时任务无法设置复杂的时间机制,而quartz可以使用cron表达式
  • timer没有利用ThreadPool(只是开启了thread),而quartz利用了
  • timer没有quartz这样的存储机制(RAM or ADO)
  • 特别简单的定时任务用timer当然也没问题!~
web环境下IIS搞事情

IIS的回收机制会导致quartz经常不触发,IIS8可以设置网站Preloaded+kept running
参考:https://docs.microsoft.com/zh-cn/archive/blogs/vijaysk/iis-8-whats-new-website-settings
建议定时任务可以写成service或者winform程序部署在服务器上-,-

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/955492.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号