gpt4 book ai didi

java - 选择更新时 quartz 阻塞

转载 作者:行者123 更新时间:2023-11-29 09:27:42 25 4
gpt4 key购买 nike

我有一个大型应用程序,其中 4 个节点使用 quartz 来安排作业。

我经常收到来 self 们数据库团队的邮件

'SELECT * FROM QRTZ_LOCKS WHERE LOCK_NAME='TRIGGER_ACCESS' FOR UPDATE'

阻塞 15-20 分钟。有时几个小时。我看到我的作业也卡在等待锁定中。

我们使用的是相当旧的 Quartz 1.8.3 版本。这是我正在使用的 Quartz 设置

org.quartz.scheduler.instanceName = DefaultQuartzScheduler
org.quartz.scheduler.instanceId = AUTO
org.quartz.scheduler.rmi.export = false
org.quartz.scheduler.rmi.proxy = false
org.quartz.scheduler.wrapJobExecutionInUserTransaction = false

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

org.quartz.jobStore.misfireThreshold = 60000

org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreCMT

org.quartz.jobStore.driverDelegateClass=com.xyx.abc.common.scheduler.impl.CDAJDBCDelegate
org.quartz.jobStore.useProperties=false
org.quartz.jobStore.tablePrefix=QRTZ_
org.quartz.jobStore.isClustered=true
org.quartz.jobStore.clusterCheckinInterval = 20000

# these 3 are required by customSchedulerFactory class
org.quartz.dataSource.myDS.connectionProvider.class=com.xyz.abc.common.scheduler.impl.CustomPoolingConnectionProvider
org.quartz.jobStore.dataSource=myDS
org.quartz.jobStore.nonManagedTXDataSource=myDS

我尝试为 Quartz 启用调试日志。但并没有从中得到太多。

有人遇到过类似的问题吗?如何确保“选择更新”查询执行得很快?

最佳答案

您可以忽略这些查询。

很多年前,我站在这个问题的另一边。我是数据库团队中的那个人,他发现了一个长时间运行的查询并要求 Java 开发人员修复它。我不记得细节了,但我记得有一个很好的解释说明为什么它会这样工作,而且没有任何需要修复的地方。

当我们按 GV$SQL.ELAPSED_TIME 降序排序时,查询总是出现在性能报告中。但仔细检查后,我们发现他们没有使用任何重要 资源。他们没有使用 CPU、I/O 或任何其他宝贵资源。这是 ELAPSED_TIME 列具有误导性的罕见情况之一。

我学会了忽略它们并担心其他查询。

关于java - 选择更新时 quartz 阻塞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45041590/

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