Skip to main content

I have a workspace which fetches data from a webservice, creates a new output and then submits said output to an e-mail recipient.

Sometimes fetching the date throught the HTTPCaller fails due to the source being unavailable. Since this is an issue with a proxy which I cannot fix, I need my workspace to restart if fetching the data has failed. However, immediately retrying doesn't work because if the source is unavailable, it usually stays this way for a few minutes.

I would therefore like my workspace to run and retry after 15 minutes if fetching the data fails.

 

So far, I can think of the following solutions:

  • encapsulate the httpCaller in a custom transformer and use a loop if no data is returned. Works ok but blocks one of the server-engines as long as the data source cannot be reached. Also the delay before the next rety needs to be set within the workspace.
  • use a ServerJobSubmitter that runs the same workspace again - might lead to an endless loop. Again delay has to be set within the workspace and engine is blocked.
  • if fetching the data fails, create a one-time-schedule throught the REST API which runs the job again.
So far, the last option sounds best to me, but I feel that there should be a more elegant way of doing this. What am I missing?

 

 

if fetching the data fails, create a one-time-schedule through the REST API which runs the job again.

 

 

This is a cool idea for this problem - but you are right there must be a better way. Seems like there needs to be a "wait" function in the Automations list. That would help you.

 

 

In FME 2020 there is a HTTP call as an automation option. Perhaps there is some way you can use that as an advantage. Ping the service at regular intervals to see if it's active?

if fetching the data fails, create a one-time-schedule through the REST API which runs the job again.

 

 

This is a cool idea for this problem - but you are right there must be a better way. Seems like there needs to be a "wait" function in the Automations list. That would help you.

 

 

In FME 2020 there is a HTTP call as an automation option. Perhaps there is some way you can use that as an advantage. Ping the service at regular intervals to see if it's active?

I'll check out the http call within automations as soon as we have upgraded to the 2020 version. I just seems odd to me, that I cannot find a nicer way to do this.

A "wait" option in automations might be nice for other use cases too.


Reply