gpt4 book ai didi

jakarta-ee - 使用 Quartz 获取集群中所有当前正在执行的作业的列表

转载 作者:行者123 更新时间:2023-12-03 19:37:43 26 4
gpt4 key购买 nike

quartz 中的 Scheduler.getCurrentlyExecutingJobs() 方法显然不是集群感知的。人们使用什么方法来获取所有正在执行的作业的列表?

最佳答案

看起来检修调度机制不会很快发生。

所以,这是我直接检查表格的方式 - 如果需要,请添加组支持:

class QuartzClusterJobStatusService
{
def quartzScheduler

boolean isJobRunning(String job) {
return isJobRunningHere(job) || isJobRunningElsewhere(job)
}

boolean isJobRunningHere(String job) {
for (JobExecutionContext j : quartzScheduler.getCurrentlyExecutingJobs()) {
if (new JobKey(job,"GRAILS_JOBS").equals(j.jobDetail.key)) {
return true
}
}
return false
}

boolean isJobRunningElsewhere(String job) {
JobStoreSupport js = quartzScheduler.sched.resources.jobStore
if (!js.isClustered()) {
return false
}
Connection conn = DBConnectionManager.getInstance().getConnection(js.getDataSource());
PreparedStatement stmt = null
try {
stmt = conn.prepareStatement("SELECT 1 FROM " + js.getTablePrefix() + "FIRED_TRIGGERS where JOB_NAME = ?")
stmt.setString(1, job)
ResultSet rs = stmt.executeQuery()
return rs.next()
} finally {
if (stmt != null)
stmt.close()
}
}
}

关于jakarta-ee - 使用 Quartz 获取集群中所有当前正在执行的作业的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1058665/

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