You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "John Yin (Jira)" <ji...@apache.org> on 2023/10/13 21:57:00 UTC
[jira] [Commented] (CAMEL-19914) Start and stop a quartz route messes up its schedule
[ https://issues.apache.org/jira/browse/CAMEL-19914?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17775073#comment-17775073 ]
John Yin commented on CAMEL-19914:
----------------------------------
Hi [~davsclaus],
It seemed that trigger.misfireInstruction=4 no longer works. With quartz-2.3.2.jar, and the following route
from("quartz://test-1?cron=0+0/3+*+?+*+*&trigger.timeZone=America/New_York&trigger.misfireInstruction=4").routeId('ROUTE_test_1')
Camel (both 3.20.6 and 4.0.1) returned the following error:
Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: quartz://test-1?cron=0+0%2F3+*+%3F+*+*&trigger.misfireInstruction=4&trigger.timeZone=America%2FNew_York due to: Error binding property (misfireInstruction=4) with name: misfireInstruction on bean: Trigger 'Camel_camel-1.test-1': triggerClass: 'org.quartz.impl.triggers.CronTriggerImpl calendar: 'null' misfireInstruction: 1 nextFireTime: null with value: 4
If the misfireInstruction is removed from the route, the route can be started no problem.
Should I open another ticket? Or I did something wrong here.
Thanks,
John
> Start and stop a quartz route messes up its schedule
> ----------------------------------------------------
>
> Key: CAMEL-19914
> URL: https://issues.apache.org/jira/browse/CAMEL-19914
> Project: Camel
> Issue Type: Bug
> Components: camel-quartz
> Affects Versions: 3.20.6
> Reporter: John Yin
> Priority: Major
>
> When a stopped quartz route is resumed, if it has missed a previously scheduled firing because of the stop, it would immediately fire regardless its defined schedule. Here is an example:
> from("quartz://test?cron=0+0/3+*+?+*+*").routeId("ROUTE_test").autoStartup(true).log("in test")
>
> from("timer://start_stop_test?repeatCount=1").autoStartup(true)
> .process({
> // stop route "ROUTE_test" using routeController API
> // wait for more than 3 minutes so that the stopped ROUTE_test will miss a firing
> // resume route "ROUTE_test" using routeController API. You will see ROUTE_test immediately fire regardless whether it is the scheduled time or not.
> })
--
This message was sent by Atlassian Jira
(v8.20.10#820010)