栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Quartz 2.2多调度程序和@DisallowConcurrentExecution

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

Quartz 2.2多调度程序和@DisallowConcurrentExecution

基本上Rene M.是正确的。这是与Quartz有关的文档:

http://www.quartz-
scheduler.org/documentation/quartz-2.2.x/configuration/ConfigJDBCJobStoreClustering.html

现在介绍一些我们自己在公司使用的背景和概念性示例。我们
Wildfly群集中使用石英群集模式。也就是说,每个Wildfly群集节点都运行石英。由于quartz本身以群集模式运行,并且指向相同的数据库模式,因此我们保证每个
群集 运行一个作业。同样,请参阅文档。关键问题是:

  1. 单个石英群集必须针对单个石英数据库
    架构运行。显然,您必须根据文档创建关系数据库表。没关系

  2. 您必须正确设置quartz.property文件,并且群集中的每个节点都必须存在一个副本。 完全相同的quartz.property文件

  3. 最后,您必须使用NonJTA数据源,否则石英群集将失败。这通常意味着在Wildfly世界中,石英将需要其自己的数据源。

石英石属性示例:

    #============================================================================# Configure Main Scheduler Properties #============================================================================org.quartz.scheduler.instanceName = BjondSchedulerorg.quartz.scheduler.instanceId = AUTO#============================================================================# Configure ThreadPool #============================================================================org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPoolorg.quartz.threadPool.threadCount = 5#============================================================================# Configure JobStore #============================================================================org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreCMTorg.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.PostgreSQLDelegateorg.quartz.jobStore.useProperties = falseorg.quartz.jobStore.tablePrefix=QRTZ_org.quartz.jobStore.isClustered = trueorg.quartz.jobStore.clusterCheckinInterval = 5000org.quartz.scheduler.wrapJobExecutionInUserTransaction = trueorg.quartz.scheduler.userTransactionURL = java:jboss/UserTransactionorg.quartz.jobStore.dataSource = PostgreSQLDSorg.quartz.jobStore.nonManagedTXDataSource = PostgreSQLDSNoJTAorg.quartz.dataSource.PostgreSQLDSNoJTA.jndiURL=java:jboss/datasources/PostgreSQLDSNoJTAorg.quartz.dataSource.PostgreSQLDS.jndiURL=java:jboss/datasources/PostgreSQLDS#============================================================================# Configure Logging#============================================================================#org.quartz.plugin.jobHistory.class=org.quartz.plugins.history.LoggingJobHistoryPlugin#org.quartz.plugin.jobHistory.jobToBeFiredMessage=Bjond Job [{1}.{0}] to be fired by trigger [{4}.{3}] at: {2, date, HH:mm:ss MM/dd/yyyy} re-fire count: {7}#org.quartz.plugin.jobHistory.jobSuccessMessage=Bjond Job [{1}.{0}] execution complete and reports: {8}#org.quartz.plugin.jobHistory.jobFailedMessage=Bjond Job [{1}.{0}] execution failed with exception: {8}#org.quartz.plugin.jobHistory.jobWasVetoedMessage=Bjond Job [{1}.{0}] was vetoed. It was to be fired by trigger [{4}.{3}] at: {2, date, dd-MM-yyyy HH:mm:ss.SSS}

现在,standalone.xml中的数据源代码段:

 <datasource jta="false" jndi-name="java:jboss/datasources/PostgreSQLDSNoJTA" pool-name="PostgreSQLDSNoJTA" enabled="true" use-java-context="true" use-ccm="true">

您可以根据需要填写此数据源元素的其余部分。@DisallowConcurrentExecution是一个好主意,它可以防止单个节点上的多个作业执行特定的方法,但是石英集群阻止了同一作业在多个VM上运行。不是这个注释。



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

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

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