Schedule配置  线程数量

如果一个Schedule中有很多任务,这样默认的10个线程就不够用了。

有很多种方法配置线程的个数。

工厂构造函数

webfonfig

quartzconfig

环境变量

建议使用webconfig

quartz.scheduler.instanceName = ExampleDefaultQuartzScheduler

quartz.threadPool.threadCount = 

quartz.jobStore.misfireThreshold = 

# sample configuration based db provider
quartz.dbprovider.customProvider.productName = Microsoft SQL Server, provider V2.0.0. in framework .NET V2.
quartz.dbprovider.customProvider.assemblyName = System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
quartz.dbprovider.customProvider.connectionType = System.Data.SqlClient.SqlConnection, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
quartz.dbprovider.customProvider.commandType = System.Data.SqlClient.SqlCommand, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
quartz.dbprovider.customProvider.parameterType = System.Data.SqlClient.SqlParameter, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
quartz.dbprovider.customProvider.parameterDbType = System.Data.SqlDbType, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
quartz.dbprovider.customProvider.parameterDbTypePropertyName = SqlDbType
quartz.dbprovider.customProvider.parameterNamePrefix = @
quartz.dbprovider.customProvider.exceptionType = System.Data.SqlClient.SqlException, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
quartz.dbprovider.customProvider.useParameterNamePrefixInParameterCollection = true
quartz.dbprovider.customProvider.bindByName = true
quartz.dbprovider.customProvider.dbBinaryTypeName = Image

优先级

NameValueCollection 构造函数>环境变量>app.config>web.config

上面的都是为了修改threadcount的数量。是通过反射做的。当然也可以修改其他的变量。

Job  Trigger配置文件

配置文件的好处,不用修改代码,只修改配置文件,就可以动态的更新任务。

Job和Trigger的配置通过插件来实现的。源码中插件项目和quartz项目分开的,需要自己手动合并到一个项目里,不然就要添加三个dll。

在源码中有一个xsd文件,这个是job trigger配置文件的架构。把他添加到vs里面xml就会提示job和trigger的xml代码了。

XMLSchedulingDataProcessor是一个专门解析job trigger配置文件的类。 配置文件默认名字是

<?xml version="1.0" encoding="UTF-8"?>

<job-scheduling-data xmlns="http://quartznet.sourceforge.net/JobSchedulingData"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="2.0">
<!--程序指令-->
<processing-directives>
<!--如果程序中定义过trigger和job 将安装这个配置文件中的执行-->
<overwrite-existing-data>true</overwrite-existing-data>
<!--不管重复的。 如果是true 程序中将会忽略这个文件中出现的配置。-->
<!--<ignore-duplicates></ignore-duplicates>-->
</processing-directives>
<schedule>
<job>
<name>xmlJob</name>
<group>xmlJobGroupName</group>
<description>xmlJob</description>
<!--job的类 类完整名字,程序集名字-->
<job-type>FrmTimingQuartz.MyJob7, FrmTimingQuartz</job-type>
<!--持久性-->
<durable>true</durable>
<!--恢复-->
<recover>true</recover>
<job-data-map>
<entry>
<key>name1</key>
<value>wyx</value>
</entry>
<entry>
<key>key2</key>
<value>wdq</value>
</entry>
</job-data-map>
</job>
<trigger>
<!--四大触发器-->
<!--http://www.cnblogs.com/wudequn/p/8506938.html-->
<calendar-interval>
</calendar-interval>
<simple>
<name>xmlTrigger</name>
<description>xmlTrigger</description>
<job-name>xmlJob</job-name>
<job-group>xmlJobGroupName</job-group>
<priority></priority>
<!---1无限大-->
<repeat-count>-</repeat-count>
<!--多久轮询一次-->
<repeat-interval></repeat-interval>
</simple> </trigger>
</schedule>
</job-scheduling-data>

配置文件

        private async void button16_Click(object sender, EventArgs e)
{
//quartz.plugin.xml.type 第一部分是类全名 第二部分是类所在程序集
NameValueCollection nvc = new NameValueCollection() {
["quartz.plugin.xml.type"] = "Quartz.Plugin.Xml.XMLSchedulingDataProcessorPlugin,Quartz.Plugins, Quartz.Plugins",
["quartz.plugin.xml.fileNames"] = "~/quartz_jobs.xml",
//三秒都一次配置文件,这只这个参数可以让 修改了配置文件也不用重新启动程序。
["quartz.plugin.xml.ScanInterval"] = ""
};
//通过namevalue初始化他的各个属性。
var tf = new StdSchedulerFactory(nvc); var sche = await tf.GetScheduler(); await sche.Start(); }

调用代码

最新文章

  1. Unity 延迟执行一段代码的较为优雅的方式
  2. IOI2015 Boxes
  3. 排序练习——找出前m大的数字 分类: 排序 2015-06-08 09:33 21人阅读 评论(0) 收藏
  4. UML_行为图
  5. 2013Esri全球用户大会之ArcGIS for Desktop
  6. opencv-阈值处理
  7. 从底层谈WebGIS 原理设计与实现(三):WebGIS前端地图显示之根据地理范围换算出瓦片行列号的原理(转载)
  8. 倒计时(距离活动结束还有X天X小时X分X秒)
  9. DLL生成与使用的全过程
  10. hdu_4869(费马小定理+快速幂)
  11. 01.在vue中通过 JSONP 方式来跨域
  12. react~props和state的介绍与使用
  13. 防止Web表单重复提交的方法总结
  14. ExtJS4.2下将表单元素放在菜单时不能进行拷贝的问题解决办法
  15. rocketmq的name server启动时的jvm参数配置
  16. Python类中的装饰器在当前类中的声明与调用
  17. eclipse中java build path下 allow output folders for source folders 无法勾选,该如何解决 eclipse中java build path下 allow output folders for source folders 无法勾选,
  18. kubernetes下的Nginx加Tomcat三部曲之二:细说开发
  19. CKEditor4.x整合教程-Xproer.WordPaster
  20. Kubernetes 针对资源紧缺处理方式的配置

热门文章

  1. 2018-2019-2 网络对抗技术 20165212 Exp6 信息搜集与漏洞扫描
  2. nodejs五子棋online游戏开发视频教程,客户端cocos creator js
  3. Flink实时处理并将结果写入ElasticSearch实战
  4. python-pptx
  5. vsnprintf和snprintf(vsnprintf就是为了支持va_list,实现对于sprint功能封装而做的)
  6. linux下查看指定进程的所有连接信息(转)
  7. 使用idea创建第一个springboot项目
  8. leetcode 542. 01 Matrix 、663. Walls and Gates(lintcode) 、773. Sliding Puzzle 、803. Shortest Distance from All Buildings
  9. angular ts处理日期格式
  10. sorry, unimplemented: non-trivial designated initializers not supported