Quartz 是什么?

Quartz 是作业调度系统,可以集成进其他软件系统。这里【作业调度程序】一词是指,在预定义时间执行(或通知)其他组件的系统。

Quartz 有什么优点?

  • 灵活,有多种使用方式,可混合使用
  • 轻量,只需很少的配置
  • 容错性好
  • 具有持久化功能,程序重启时,可记住已计划的任务

Quartz的主要接口?

Quartz 以 dll 形式分发,主要接口有

  • Schedular 接口:它提供的功能有:调度/取消调度作业,开始,停止,暂停。
  • Job接口:用于自定义执行逻辑。
  • TriggerListener 或 JobListener 接口:用于接收通知。

为什么不使用 System.Timers.Timer?

  • Timer没有持久化机制
  • Timer的调度功能没有弹性,仅能定时触发
  • Timer不能利用线程池,每个Timer一个线程
  • Timer没有管理功能,需要自己组织任务

Quartz 的性能如何?

JobStore 影响性能:基于ADO.NET的JobStore性能不如基于RAM的JobStore,采用AdoJobStore时,大部分时间都花在数据库交互上,RAMJobStore比AdoJobStore快1000倍以上,但存储的作业和触发器数量没有AdoJobStore多。

侦听器影响性能:使用大量侦听器会降低quartz性能,例如,TriggerListener, JobListener和 SchedulerListener,一些插件实际上也是侦听器,例如历史插件。花在侦听器的时间没有用于实际作业。优先使用局部侦听器,而非全局侦听器。在侦听器中尽量不要执行昂贵操作。

Quartz能同时执行多少任务?

quartz能同时执行的作业数受线程池大小影响,例如,线程池中只有5个线程池时,最多可以执行5个任务。

如何控制作业对象的实例化?

参考 Quartz.Spi.IJobFactory 接口和 Quartz.IScheduler.JobFactory 属性。

如何使孤儿作业不被删除?

孤儿作业是指没有触发器引用的作业。将 JobDetail.Durable 属性设为true,可使quartz不删除孤儿作业。

如何禁止并发作业?

使用 DisallowConcurrentExecutionAttribute 可禁止作业并发执行。

如何停止正在执行的作业?

参考IJobExecutionContext 的 CancellationToken.IsCancellationRequested 属性。

如果组织链式作业?

  • 方法1,使用侦听器(例如 TriggerListener, JobListener 或 SchedulerListener) ,在完成时发出通知,开始下一个作业。
  • 方法2,在 JobDataMap 中指定下一个要触发的作业名,在作业完成时触发。

触发器为什么不触发?

  • 最常见原因是没有调用Scheduler.Start()方法
  • 其次是触发器或触发器组被暂停

IIS 中如何保持调度不停止?

IIS 会回收应用程序池,调度程序将停止。如果使用的IIS8,可配置IIS始终运行:

  • 网站:【预加载已启用】设为【True】
  • 应用程序池:【启动模式】设为【AlwaysRunning】

转载于:https://www.cnblogs.com/dongbeifeng/p/quartz-net-faq.html

Quartz.net 的 FAQ相关推荐

  1. SpringBoot2.0.3之quartz集成,不是你想的那样哦!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:青石路 cnblogs.com/youzhibing/p/1 ...

  2. Quartz框架多个trigger任务执行出现漏执行的问题分析--转

    原文地址:http://blog.csdn.net/dailywater/article/details/51470779 一.问题描述  使用Quartz配置定时任务,配置了超过10个定时任务,这些 ...

  3. spring-boot-2.0.3之quartz集成,不是你想的那样哦!

    前言 开心一刻 晚上回家,爸妈正在吵架,见我回来就都不说话了,看见我妈坐在那里瞪着我爸,我就问老爸"你干什么了惹我妈生这么大气?"  我爸说"没有什么啊,倒是你,这么大了 ...

  4. Spring和Quartz实现的定时任务调度

    Corn表达式 一.增加所依赖的JAR包 1. 增加Spring的Maven依赖 [html] view plaincopy <dependency> <groupId>org ...

  5. Quartz任务调度器详解

    关键字: 参考文章:http://blog.sina.com.cn/s/blog_4d36e1ae0100tost.html 价值文章分享:http://wenku.baidu.com/link?ur ...

  6. Quartz配置和运用详解

    本文转自:http://topmanopensource.iteye.com/blog/1123824 最近工作需要学习quartz,那么必须首先了解三个概念: 调度器:负责调度作业和触发器: 触发器 ...

  7. SpringBoot中实现quartz定时任务

    Quartz整合到SpringBoot(持久化到数据库) 背景 最近完成了一个小的后台管理系统的权限部分,想着要扩充点东西,并且刚好就完成了一个自动疫情填报系统,但是使用的定时任务是静态的,非常不利于 ...

  8. 入门指南目录页 -PaddlePaddle 飞桨 入门指南 FAQ合集-深度学习问题

    入门指南目录页 -PaddlePaddle 飞桨 入门指南 FAQ合集 GT_Zhang关注 0.1012019.08.01 18:43:34字数 1,874阅读 795 Hi,欢迎各位来自Paddl ...

  9. llvm常见问题 (FAQ)

    llvm常见问题 (FAQ) License 可以修改 LLVM 源代码并重新分发修改后的源代码吗? 可以修改 LLVM 源代码并重新分发基于二进制文件或其它工具,而无需重新分发源代码吗? 源代码 L ...

  10. Java基于Quartz的定时任务调度服务(一)

    Quartz的基本用法 一 Quartz的简单介绍 Quartz 是 OpenSymphony 开源组织在任务调度领域的一个开源项目,完全基于 Java 实现,一个优秀的开源调度框架,其特点是:强大的 ...

最新文章

  1. httpclient通过POST来上传文件,而不是通过流的形式,并在服务端进行解析(通过htt......
  2. C++基础知识之vector
  3. 我们总结了每个技术团队都会遇到的 4 个难题
  4. Visual Studio 2008 每日提示(三十一)
  5. Chapter 1. Introduce
  6. 小学生计算机舞蹈,最近“泼水成画”很火?舞蹈生VS体育生,看到计算机:你是来添乱的?...
  7. C# 开源一个基于 yarp 的 API 网关 Demo,支持绑定 Kubernetes Service
  8. SAP License:SAP PI(流程集成)
  9. H3C VLAN同步MVRP实验
  10. MySQL 第五次练习(MySQL备份恢复)
  11. 泛微oa系统什么框架_泛微OA ecology 二次开发实例 开发完整说明
  12. pi控制直流电机c语言,一种基于PI控制的直流电机调速控制系统及控制方法与流程...
  13. 豆瓣读书TOP250书籍信息爬虫脚本
  14. unix/Linux系统下的nobody用户与nologin详细介绍
  15. Java响应式编程基础-响应式流
  16. 华为MateBook16投屏设置
  17. adb shell bugreport分析
  18. 反恐精英java_使用java查询反恐精英1.6服务器信息
  19. 应聘经验——百田公司面试题记忆
  20. Kettle使用【插入\更新】组件非常慢

热门文章

  1. Provisioning Services 7.8 入门系列教程之四 目标设备安装
  2. mysqli 操作数据库(转)
  3. winscp自动执行脚本
  4. vsftp客户连接常见故障现象
  5. linux下高可用性群集和负载均衡群集的实现
  6. 梦之翼网络LAMP技术博客正式成立!
  7. do_fork实现--下
  8. Linux设备驱动模型-Device
  9. 漫画:什么是二叉堆?
  10. KVM 001 -- 简介及安装