gpt4 book ai didi

java - Grails Quartz 插件在启动时删除触发器并打开持久性

转载 作者:行者123 更新时间:2023-12-02 13:58:58 24 4
gpt4 key购买 nike

我遇到了以下问题:我有一个带有 quartz 插件的 grails 应用程序和一个持久存储 (Oracle)。我的工作类有一个空的触发器块,如下所示:

class VodServerJob {
static triggers = {}
def volatility = false;
def durability = true;
def concurrency = false;
def group = "MyGroup"
def execute(context) { }
}

...但我在进行过程中以编程方式添加触发器(让用户安排工作的启动时间)。当我关闭应用程序时,触发器仍在数据库中。但是在启动时,触发器被删除,从而破坏了持久存储的意义。

我的配置如下:
quartz {
autoStartup = true
jdbcStore = true
waitForJobsToCompleteOnShutdown = true
}

environments {
test { quartz { autoStartup = false } }
}

我的属性如下:
#============================================================================
# Configure ThreadPool
#============================================================================

org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 25
org.quartz.threadPool.threadPriority = 5

#============================================================================
# Configure JobStore
#============================================================================

org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.oracle.OracleDelegate
org.quartz.jobStore.useProperties = false
org.quartz.jobStore.dataSource = myDS
org.quartz.jobStore.tablePrefix = QRTZ_

#============================================================================
# Configure Datasources
#============================================================================

org.quartz.dataSource.myDS.driver = oracle.jdbc.driver.OracleDriver
org.quartz.dataSource.myDS.URL = jdbc:oracle:thin:@172.27.5.18:1521:dcrm
org.quartz.dataSource.myDS.user = <hidden, but valid>
org.quartz.dataSource.myDS.password = <hidden, but valid>
org.quartz.dataSource.myDS.maxConnections = 5
org.quartz.dataSource.myDS.validationQuery=select 0 from dual

根据我所看到的一切,这应该允许数据库持久性,但是,它在启动时被删除。任何人对为什么有任何想法?

最佳答案

在这个上找到了答案。触发器设置为 volatile默认情况下,这意味着它们在启动时被删除。刚设置volatility触发到 false如下使您的触发器无限期地持久化。
trigger.setVolatility(false);
否则,他们会被抹去。

关于java - Grails Quartz 插件在启动时删除触发器并打开持久性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6059473/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com