You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by dpravin <pr...@gmail.com> on 2015/10/09 21:15:37 UTC

Camel - Quartz2

Hello,

I am using quartz2 component to schedule a route that consumes messages from
AMQ queue using consumer template.

The requirement is to schedule this route every 5 minutes, however if for
some reason the server is down during the scheduled time, the job should run
as soon as it is up.

I have tried following options, however it not working as intended.

Option 1- 
<from
uri="quartz2://MyGroup/myReportTimer?cron=0+0/5+*+*+*+?&amp;stateful=true&amp;recoverableJob=true"
/>

The configuration works by manually stopping the route before scheduled time
and then starting the route after scheduled time. The quartz component
triggers the route.

If I stop the container before the scheduled time and start the container,
the route runs at the next scheduled time.


Options 2-
<from
uri="quartz2://MyGroup/myReportTimer?cron=0+0/5+*+*+*+?&amp;deleteJob=false&amp;durableJob=true&amp;stateful=true&amp;recoverableJob=true"
/>

The scenario in option1 works as expected. However if I shutdown the server
before the scheduled time and restart I get following errors,

Error occurred during starting Camel: CamelContext(aggregateCC) due Failed
to create route consumerRoute:
Route(consumerRoute)[[From[quartz2://MyGroup/aggregateRepor... because of
Failed to resolve endpoint:
quartz2://MyGroup/myReportTimer?cron=0+0%2F5+*+*+*+%3F&durableJob=true&recoverableJob=true&stateful=true
due to: Unable to store Job : 'MyGroup.myReportTimer', because one already
exists with this identification.
org.apache.camel.FailedToCreateRouteException: Failed to create route
consumerRoute: Route(consumerRoute)[[From[quartz2://MyGroup/myRepor...
because of Failed to resolve endpoint:
quartz2://MyGroup/myReportTimer?cron=0+0/5+*+*+*+?&amp;deleteJob=false&amp;durableJob=true&amp;stateful=true&amp;recoverableJob=true
due to: Unable to store Job : 'MyGroup.myReportTimer', because one already
exists with this identification.
	at
org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:190)[198:org.apache.camel.camel-core:2.15.1.redhat-620133]

I am not able to understand why the component is trying to insert a record
for the job again if it exists. I expected it to do this check and since I
have marked it as recoverable and stateful the route should run at scheduled
time(if the server is up) or after scheduled time when the server/container
is up.

Server version - Jboss Fuse 6.2
Camel version - 2.15.1.redhat-620133

Appreciate if anyone could help resolve this issue.

Thanks,
D



--
View this message in context: http://camel.465427.n5.nabble.com/Camel-Quartz2-tp5772494.html
Sent from the Camel Development mailing list archive at Nabble.com.