Hi 

I have a quartz job(stateful) which wakes up every 60 seconds, pulls
"unprocessed" records from a DB and sends each of them to a Web Service
Endpoint. The Web Service call introduces a latency of approx .5 sec. Each
time the quartz job fires there can be 100's of "unprocessed" records.
Hence, after retrieving the records I iterate over the records via the
splitter and I load balance(sticky - need to maintain order across subsets
of the records) to 10 different seda queues. I then have 10 different routes
which takes from each of the queues, transmits the message to the web
service endpoint and then updates the record to be in a "processed" state.

However, with the above approach I could easily send duplicates to the web
service endpoint because a record which is returned when the quartz job
fires at time 0 could be sitting on one of the seda queues at time 60 when
the quartz job fires again and hence it is still in an "unprocessed" state
in the database as it only gets updated to "processed" when we get a
response from the Web Service call.

I could solve this by introducing a new interim status and have the DB
update the "unprocessed" records to the new interim status but just wanted
to check to see if there was any other way of solving this as I have less
control over the DB

Thanks
Joe



--
View this message in context: 
http://camel.465427.n5.nabble.com/Camel-Quartz-Query-tp5740206.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to