java - 设置 Quartz 设置的 'clustered' 属性会导致单台机器出现问题吗?

标签 java quartz-scheduler cluster-computing

我们有一堆配置为在集群环境中运行的 quartz 作业,在真实集群(两台 WAS 机器)上一切似乎都运行良好。

在DEV环境下我们还是用

org.quartz.jobStore.isClustered = true

虽然我们只用一台机器。但是我们经常但不总是遇到以下异常:

org.quartz.JobPersistenceException: 
    Couldn't store trigger 'DEFAULT.MT_6uclr3emepk6p' for '<group>.<name>' 
    job:The job (<group>.<name>) referenced by the trigger does not exist.

我们将 DEV 环境的设置更改为

org.quartz.jobStore.isClustered = false

这似乎让问题消失了。

所以问题是:

  • 当您实际上没有使用集群时设置 org.quartz.jobStore.isClustered = true 是否有问题
  • 如果是,为什么?
  • 如果不是,那么最初问题的原因可能是什么?

更新:关于错误发生时间的说明:

这是设置作业的代码段。

JobKey JOBKEY = new JobKey("Name", "group");
newTrigger().withIdentity("TriggerName", "group").forJob(
                JOBKEY).build();
JobDetail job = newJob(NameJob.class).withIdentity(
                JOBKEY)
                .storeDurably().build();
scheduler.addJob(job, false);

这个片段应该触发作业执行

scheduler.triggerJob(JOBKEY);

最佳答案

这是一条红鲱鱼。一个节点的 isClustered=true 就好了(尽管没有必要)。

我敢打赌,您遇到的问题是由多个开发人员在同时进行测试/构建时使用同一数据库引起的。

关于java - 设置 Quartz 设置的 'clustered' 属性会导致单台机器出现问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9093689/

相关文章:

java - 如何进行桌面 Java 应用程序的自动化验收测试?

java - 无法获取用于删除的 Struts2-jquery-grid 行 ID

c# - 如何在 Quartz.net 中随时开始工作?

kubernetes - 如何通过https访问kubernetes网站

c - 为什么并行和串行版本的执行时间几乎相同

java - 将字符串转换为整数。字符串值 = 扫描仪输入.....很难解释

java - 查找所有区间包含

java - 编写每小时执行一次的java代码(quartz)

java - 有没有办法从 Linux Shell 手动调用 Spring Quartz Job

amazon-web-services - 如何使用 AWS IAM 角色运行 StarCluster