The “direct:await-import-complete” calling itself makes me a little nervous - 
the call stack could get pretty deep if it has to wait very long.

Could you use the loop DSL (http://camel.apache.org/loop.html 
<http://camel.apache.org/loop.html>)?


> On Mar 3, 2016, at 11:44 AM, jelmer <jkupe...@gmail.com> wrote:
> 
> Since no one answered I came up with this :
> 
>    from("file:/Users/jkuperus/foo")
>      .process(ToMultiPartRequestProcessor)
>      .setHeader(Exchange.HTTP_METHOD, constant(HttpMethods.POST))
>      .setHeader(Exchange.CONTENT_TYPE, constant("multipart/form-data"))
>      .setHeader(Exchange.HTTP_PATH, constant("/api/tasks"))
>      .to("http4://localhost:11380")
>      .transform().header("Content-Location")
>      .to("direct:await-import-complete")
> 
> 
>    from("direct:await-import-complete")
>      .setHeader(Exchange.HTTP_METHOD, constant(HttpMethods.GET))
>      .setHeader(Exchange.HTTP_PATH, body().convertToString())
>      .to("http4://localhost:11380")
>      .transform(body().convertToString())
>      .choice()
>        .when().jsonpath("[?(@.state == 'completed')]")
>          .transform().jsonpath("@.campaignId")
>          .to("direct:do-stuff")
>        .otherwise()
>          .log("Task was not yet completed retrying in 2 seconds")
>          .delay(2000)
>          .transform().header(Exchange.HTTP_PATH)
>          .to("direct:await-import-complete")
> 
> 
> Does this make any sense ?
> 
> On 2 March 2016 at 21:27, jelmer <jkupe...@gmail.com> wrote:
> 
>> Hi as part of a camel route i upload a file to a REST service, the service
>> will return status 202 and a Content-Location header that points to a json
>> resource with a status field
>> i want to wait for the status of this resource to change to completed, and
>> only then continue. so i need some sort of polling
>> But i don't see an obvious way to do this in camel
>> can anyone offer any suggestions?
>> 

Reply via email to