I don’t have example code readily available, but one possible approach would be:
- Send job request REST/JSON and get job ID back - Add ID to a queue of not-yet-done jobs - A separate route pulls job IDs from the not-done queue and polls - If not done, put it back on the queue - If done, put ID on a different queue for done jobs - A third route pulls job IDs from the done queue and retrieves the search result You’d want some delay or use a timer in combination with the not-done job queue. -Steve > On Aug 8, 2017, at 4:12 AM, simon_dietschi <simon.diets...@siemens.com> wrote: > > Hi Camel folks, > > I am currently looking for a simple approach achieving the following in > Apache Camel / Spring Boot: > > 1. Send a search job request to an external REST/JSON API > 2. Get a search processing job ID from the API > 3. Poll the API until it returns a JSON response containing a specific > status = done > 4. Once status done has been returned, proceed with the retrieval of the > search result (separate part, considered to be straight forward) > > The first solution one may think of is to implement the Polling Consumer > pattern, which in my opinion requires too much overhead code (need to > implement Component, Endpoint, Consumer,...) and more important this pattern > does the contrary - it returns a message once a message is available (e.g. > https://github.com/Palo-IT/Examples/tree/master/camel-custom-feedly-component). > > Another approach would be a simple Processor where I loop a defined number > of times calling the API or using the DSL -> doWhile... > > As I was unable to find a good code snippet, it would be cool if you guys > can share your thoughts or point me to a good sample. > > Cheers, > Simon > > > > -- > View this message in context: > http://camel.465427.n5.nabble.com/Apache-Camel-Routing-Best-practice-how-to-poll-an-external-REST-API-tp5809926.html > Sent from the Camel - Users mailing list archive at Nabble.com.