1. Schedule配置 线程数量

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

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

工厂构造函数

webfonfig

quartzconfig

环境变量

建议使用webconfig

  1. quartz.scheduler.instanceName = ExampleDefaultQuartzScheduler
  2.  
  3. quartz.threadPool.threadCount =
  4.  
  5. quartz.jobStore.misfireThreshold =
  6.  
  7. # sample configuration based db provider
  8. quartz.dbprovider.customProvider.productName = Microsoft SQL Server, provider V2.0.0. in framework .NET V2.
  9. quartz.dbprovider.customProvider.assemblyName = System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
  10. quartz.dbprovider.customProvider.connectionType = System.Data.SqlClient.SqlConnection, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
  11. quartz.dbprovider.customProvider.commandType = System.Data.SqlClient.SqlCommand, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
  12. quartz.dbprovider.customProvider.parameterType = System.Data.SqlClient.SqlParameter, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
  13. quartz.dbprovider.customProvider.parameterDbType = System.Data.SqlDbType, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
  14. quartz.dbprovider.customProvider.parameterDbTypePropertyName = SqlDbType
  15. quartz.dbprovider.customProvider.parameterNamePrefix = @
  16. quartz.dbprovider.customProvider.exceptionType = System.Data.SqlClient.SqlException, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
  17. quartz.dbprovider.customProvider.useParameterNamePrefixInParameterCollection = true
  18. quartz.dbprovider.customProvider.bindByName = true
  19. quartz.dbprovider.customProvider.dbBinaryTypeName = Image

优先级

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

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

  1. Job Trigger配置文件

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

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

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

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

  1. <?xml version="1.0" encoding="UTF-8"?>
  2.  
  3. <job-scheduling-data xmlns="http://quartznet.sourceforge.net/JobSchedulingData"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. version="2.0">
  6. <!--程序指令-->
  7. <processing-directives>
  8. <!--如果程序中定义过trigger和job 将安装这个配置文件中的执行-->
  9. <overwrite-existing-data>true</overwrite-existing-data>
  10. <!--不管重复的。 如果是true 程序中将会忽略这个文件中出现的配置。-->
  11. <!--<ignore-duplicates></ignore-duplicates>-->
  12. </processing-directives>
  13. <schedule>
  14. <job>
  15. <name>xmlJob</name>
  16. <group>xmlJobGroupName</group>
  17. <description>xmlJob</description>
  18. <!--job的类 类完整名字,程序集名字-->
  19. <job-type>FrmTimingQuartz.MyJob7, FrmTimingQuartz</job-type>
  20. <!--持久性-->
  21. <durable>true</durable>
  22. <!--恢复-->
  23. <recover>true</recover>
  24. <job-data-map>
  25. <entry>
  26. <key>name1</key>
  27. <value>wyx</value>
  28. </entry>
  29. <entry>
  30. <key>key2</key>
  31. <value>wdq</value>
  32. </entry>
  33. </job-data-map>
  34. </job>
  35. <trigger>
  36. <!--四大触发器-->
  37. <!--http://www.cnblogs.com/wudequn/p/8506938.html-->
  38. <calendar-interval>
  39. </calendar-interval>
  40. <simple>
  41. <name>xmlTrigger</name>
  42. <description>xmlTrigger</description>
  43. <job-name>xmlJob</job-name>
  44. <job-group>xmlJobGroupName</job-group>
  45. <priority></priority>
  46. <!---1无限大-->
  47. <repeat-count>-</repeat-count>
  48. <!--多久轮询一次-->
  49. <repeat-interval></repeat-interval>
  50. </simple>
  51.  
  52. </trigger>
  53. </schedule>
  54. </job-scheduling-data>

配置文件

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

调用代码

Quartz.Net—配置化的更多相关文章

  1. 【Quartz】配置最简单的集群

    在许多情况,我们希望我们的定时任务是可靠的,不会因系统故障.机器宕机而导致某一笔定时任务不能按时运行.这种情况下,我们就需要为Quartz做个集群. 最简单的情况,有两台机器或两个应用,同时维护一批定 ...

  2. Quartz.NET配置

    概述 Quartz.NET 在开源任务调度框架中的翘首,它提供了强大任务调度机制,难能可贵的是它同时保持了使用的简单性.Quartz 允许开发人员灵活地定义触发器的调度时间表,并可以对触发器和任务进行 ...

  3. Quartzs -- Quartz.properties 配置

    Quartzs -- Quartz.properties 配置 文件加载位置 默认:优先顺序 Classpath:quartz.properties --> org/quartz/quartz. ...

  4. quartz 时间配置规则

    quartz 时间配置规则 格式: [秒] [分] [小时] [日] [月] [周] [年]  序号 说明  是否必填  允许填写的值 允许的通配符  1  秒  是  0-59    , - * / ...

  5. Quartz动态配置表达的方法

    在项目中有一个需求,需要灵活配置调度任务时间,并能自由启动或停止调度.有关调度的实现我就第一就想到了Quartz这个开源调度组件,因为很多项目使用过,Spring结合Quartz静态配置调度任务时间, ...

  6. 面向UI编程:ui.js 1.0 粗糙版本发布,分布式开发+容器化+组件化+配置化框架,从无到有的艰难创造

    时隔第一次被UI思路激励,到现在1.0的粗糙版本发布,掐指一算整整半年了.半年之间,有些细节不断推翻重做,再推翻再重做.时隔今日,终于能先出来个东西了,这个版本很粗糙,主体功能大概能实现了,但是还是有 ...

  7. kettle-数据源配置化-开发、生产采用不同配置

    数据etl常用工具kettle. 1.说明: kettle-数据源配置化:是指kettle的数据源连接信息全部或者部分从配置文件中读取(如果是数据库的资源库,那么资源库也可以配置化). 2.优点: 1 ...

  8. spring boot1.0 集成quartz 动态配置定时任务

    转载自 https://www.imooc.com/article/36278 一.Quartz简介了解 Quartz Quartz 是一个完全由 Java 编写的开源作业调度框架,为在 Java 应 ...

  9. Springboot学习笔记(六)-配置化注入

    前言 前面写过一个Springboot学习笔记(一)-线程池的简化及使用,发现有个缺陷,打个比方,我这个线程池写在一个公用服务中,各项参数都定死了,现在有两个服务要调用它,一个服务的线程数通常很多,而 ...

随机推荐

  1. Consul常用接口使用

    prometheus.yml 配置 - job_name: 'node_exporter' consul_sd_configs: - server: 'consul_ip:8500' services ...

  2. Bootstrap select 多选并获取选中的值

    代码: <!DOCTYPE html><html> <head>    <meta charset="UTF-8">    < ...

  3. 请在mysql配置文件修sql-mode或sql_mode为NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

    错误信息:请在mysql配置文件修sql-mode或sql_mode为NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 解决办法(最有效,以MySQL5.7为例): ...

  4. 震惊,hexo个人博客居然有这么方便的评论系统

    论文搞得一头火,瞎倒腾了一下,没想到几分钟给自己的博客换了个评论系统. 之前用的gitalk,需要依赖github,死活没有成功,而且评论者还需要登录github才可以评论,不好用,刚才偶然间发现va ...

  5. google镜像《转》

    最新谷歌镜像列表 https://jsproxy-demo.ml 谷歌镜像F1http://go.yuxuantech.com 谷歌镜像F1,非SSLhttps://www.siwa88.net 谷歌 ...

  6. elementUI 列表里面含有多选框,当翻页的时候依然保持之前页多选不变

    el-table的type="selection"的使用 场景:el-table,type="selection"时,重新请求后,设置列表更新前的已勾选项 踩坑 ...

  7. 小D课堂 - 零基础入门SpringBoot2.X到实战_第4节 Springboot2.0单元测试进阶实战和自定义异常处理_17、SpringBootTest单元测试实战

    笔记 1.@SpringBootTest单元测试实战     简介:讲解SpringBoot的单元测试         1.引入相关依赖              <!--springboot程 ...

  8. 生成model笔记

    https://github.com/yscacaca/DeepSense/tree/master/android_test这个才是真正的部署代码,跑这个代码就好. 跑python sample_mo ...

  9. Kotlin介绍

    Kotlin介绍 转 https://www.jianshu.com/p/d30406daaf25 Google在今年的IO大会上宣布,将Android开发的官方语言更换为Kotlin,作为跟着Goo ...

  10. k8s之磁盘挂载持久化