You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2019/05/22 08:50:59 UTC

[camel] 01/03: CAMEL-13476: QuartzScheduledPollConsumerScheduler should not remove trigger when quartz is clustered

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 14b3ab54afa951f8ed4ac8aa38cba83aae167bf3
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed May 22 10:43:36 2019 +0200

    CAMEL-13476: QuartzScheduledPollConsumerScheduler should not remove trigger when quartz is clustered
---
 .../quartz2/QuartzScheduledPollConsumerScheduler.java | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/components/camel-quartz2/src/main/java/org/apache/camel/pollconsumer/quartz2/QuartzScheduledPollConsumerScheduler.java b/components/camel-quartz2/src/main/java/org/apache/camel/pollconsumer/quartz2/QuartzScheduledPollConsumerScheduler.java
index add7a9e..9e21fbc 100644
--- a/components/camel-quartz2/src/main/java/org/apache/camel/pollconsumer/quartz2/QuartzScheduledPollConsumerScheduler.java
+++ b/components/camel-quartz2/src/main/java/org/apache/camel/pollconsumer/quartz2/QuartzScheduledPollConsumerScheduler.java
@@ -27,6 +27,7 @@ import org.apache.camel.component.quartz2.QuartzComponent;
 import org.apache.camel.component.quartz2.QuartzConstants;
 import org.apache.camel.component.quartz2.QuartzHelper;
 import org.apache.camel.spi.ScheduledPollConsumerScheduler;
+import org.apache.camel.spi.UriParam;
 import org.apache.camel.support.service.ServiceSupport;
 import org.apache.camel.util.StringHelper;
 import org.quartz.CronScheduleBuilder;
@@ -57,6 +58,7 @@ public class QuartzScheduledPollConsumerScheduler extends ServiceSupport impleme
     private String triggerId;
     private String triggerGroup = "QuartzScheduledPollConsumerScheduler";
     private TimeZone timeZone = TimeZone.getDefault();
+    private boolean deleteJob = true;
     private volatile CronTrigger trigger;
     private volatile JobDetail job;
 
@@ -153,6 +155,14 @@ public class QuartzScheduledPollConsumerScheduler extends ServiceSupport impleme
         this.triggerGroup = triggerGroup;
     }
 
+    public boolean isDeleteJob() {
+        return deleteJob;
+    }
+
+    public void setDeleteJob(boolean deleteJob) {
+        this.deleteJob = deleteJob;
+    }
+
     @Override
     protected void doStart() throws Exception {
         StringHelper.notEmpty(cron, "cron", this);
@@ -250,9 +260,12 @@ public class QuartzScheduledPollConsumerScheduler extends ServiceSupport impleme
 
     @Override
     protected void doStop() throws Exception {
-        if (trigger != null) {
-            log.debug("Unscheduling trigger: {}", trigger.getKey());
-            quartzScheduler.unscheduleJob(trigger.getKey());
+        if (trigger != null && deleteJob) {
+            boolean isClustered = quartzScheduler.getMetaData().isJobStoreClustered();
+            if (!quartzScheduler.isShutdown() && !isClustered) {
+                log.info("Deleting job {}", trigger.getKey());
+                quartzScheduler.unscheduleJob(trigger.getKey());
+            }
         }
     }