- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
Quartz的架构是模块化的,因此要让它运行几个组件,需要将其“断开”。幸运的是,存在一些帮助实现这种情况的助手。
在Quartz能够完成其工作之前,需要配置的主要组件是:
ThreadPool提供了一组用于执行作业时使用 Quartz 的线程。池中线程越多,可以并发运行的作业数量就越多。但是,太多的线程可能会使系统崩溃。
大多数 Quartz 用户发现,5个左右的线程足够多——因为在任何给定的时间内,他们的工作岗位都少于100个,而这些工作通常不会同时运行,而且工作时间很短(完成得很快)。其他用户发现他们需要10个、15个、50个甚至100个线程——因为他们有成千上万个不同时间表的触发点——在任何给定的时刻,他们平均要执行10到100个任务。为调度器的池找到合适的大小完全取决于您使用调度器的用途。除了保持线程数量尽可能小(为了您的机器的资源)之外,没有真正的规则,但是要确保您有足够的时间让您的工作按时启动。请注意,如果触发的触发时间到达,并且没有可用的线程,Quartz将阻塞(暂停),直到有一个线程可用,然后任务将执行——比它应该执行的时间晚几毫秒。这甚至可能导致线程失火(MisFire)——如果调度程序配置的“misfire阈值”(misfire threshold)的持续时间没有可用线程的话。
在 org.quartz.spi
包中定义了一个ThreadPool接口。你可以用你喜欢的任何方式创建一个ThreadPool实现。Quartz 附带一个简单(但非常满意)线程池org.quartz.simpl.SimpleThreadPool
命名。
这个ThreadPool只是在它的池中维护一组固定的线程——从不增长,从不收缩。但是它是非常健壮的,并且经过了很好的测试——几乎所有使用 Quartz 的人都使用这个池。
值得注意的是,所有的jobstore都实现了 org.quartz.spi.JobStore
接口——如果其中一个绑定的JobStore不符合您的需求,那么您可以自己创建。
调度程序本身需要给定一个名称,告诉它的RMI设置,以及一个JobStore和ThreadPool的实例。
RMI设置包括:调度器是否应该创建自己作为RMI的服务器对象(使自己可以用于远程连接)、主机和端口的使用等。StdSchedulerFactory (下面讨论)也可以生成调度实例,它们实际上是远程进程中创建的调度程序的代理(RMI存根)。
StdSchedulerFactory 是 org.quartz.SchedulerFactory
的一个实现。
它使用一组属性(java.util.Properties
)来创建和初始化一个 Quartz 调度器。
属性通常存储在文件中并从文件中加载,但也可以由程序创建并直接交给工厂。
在工厂中简单地调用 getScheduler()
将生成调度程序、初始化它(以及它的ThreadPool、JobStore和DataSources),并返回它的公共接口的句柄。
在Quartz发行版的docs/config目录中,有一些示例配置(包括属性描述)。您可以在Quartz文档的“参考”部分的“配置”手册中找到完整的文档。
DirectSchedulerFactory 是另一个调度程序工厂实现。
对于那些希望以更程序化的方式创建调度实例的人来说,这是很有用的。
它的使用通常是由于以下原因而被阻止的:
(1)它要求用户对他们正在做的事情有一个更大的理解,
(2)它不允许声明式配置——或者换句话说,你最终会硬编码所有调度器的设置。
Quartz使用SLF4J框架来满足所有日志记录需求。为了“调优”日志记录设置(例如输出量,以及输出的位置),您需要了解SLF4J框架,这超出了本文的范围。
如果你想获取额外信息触发解雇和执行工作,org.quartz.plugins.history.LoggingJobHistoryPlugin
& org.quartz.plugins.history.LoggingTriggerHistoryPlugin
我正在做一个关于代码学院的教程,我在这里收到一个错误,说“看起来你的函数没有返回‘唉,你没有资格获得信用卡。资本主义就是这样残酷。’”当收入参数为 75 时。”但是该字符串在控制台中返回(由于某种原因
我正在阅读 Go 的官方教程,但很难理解 Channel 和 Buffered Channels 之间的区别。教程的链接是 https://tour.golang.org/concurrency/2和
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。 9年前关闭。 Improve this que
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,因为
作为 iOS 新手,有大量书籍可以满足学习基础知识的需求。现在,我想转向一些高级阅读,例如 OAuth 和 SQLite 以及动态 API 派生的 TableView 等。您可以推荐任何资源吗? 最佳
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 8 年前。 Improve
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 8 年前。
前言 很多同学都知道,我们常见的CTF赛事除了解题赛之外,还有一种赛制叫AWD赛制。在这种赛制下,我们战队会拿到一个或多个服务器。服务器的连接方式通常是SSH链接,并且可能一个战队可能会同时有
Memcached是一个自由开源的,高性能,分布式内存键值对缓存系统 Memcached 是一种基于内存的key-value存储,用来存储小块的任意数据(字符串、对象),这些数据可以是数据库调用、A
Perl 又名实用报表提取语言, 是 Practical Extraction and Report Language 的缩写 Perl 是由 拉里·沃尔(Larry Wall)于19
WSDL 是 Web Services Description Language 的缩写,翻译成中文就是网络服务描述语言 WSDL 是一门基于 XML 的语言,用于描述 Web Services 以
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 6年前关闭。 Improve thi
我正在寻找解释在 WPF 中创建自定义用户控件的教程。 我想要一个控件,它结合了一个文本 block 、一个文本框和一个启动通用文件打开对话框的按钮。我已经完成了布局,一切都连接好了。它有效,但它是三
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我接近 fourth page of the Django tutorial 的开始看着vote查看,最后是这样的: # Always return an HttpResponseRedirect a
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
是否有任何好的 Qt QSS 教程,或者在某个地方我可以看到样式小部件的示例?如果某处可用,我想要一些完整的引用。除了有关如何设置按钮或某些选项卡样式的小教程外,我找不到任何其他内容。 最佳答案 Qt
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我是一名优秀的程序员,十分优秀!