Skip to main content
Solved

How to run a dynamic choice of child workspaces and only use one FME Server Engine


Forum|alt.badge.img

I have a workspace that runs on FME server and uses a HTTPCaller to call other workspaces. I haven't used FMEServerJobSubmitter because FMEServerJobSubmitter needs to be set to just one workspace which fixes the set of parameters and I have lots of options for which workspace actually needs to be ran depending on earlier results/settings . I'm using a JSONTemplater to put together instructions for the HTTPCaller to run whichever workspace is needed.

The problem is that this uses two engines: the HTTPCaller starts another engine while the original workspace waits for it to complete.

Is there any way to have the option of many child workspaces to run and only use one engine like FMEServerJobSubmitter does when there is only one possible child workspace?

Best answer by hollyatsafe

Hi @ella_s,

The only way to launch child engine processes in FME Server is via the FMEServerJobSubmitter transformer.

If the important part is that you need each workspace to run in sequence, then you could investigate Job Queues.

So in your HTTPCaller you would use the submit request instead - and as long as they are submitted in the correct run time order then if each job is assigned to run on a queue that has only been assigned a single engine, these jobs will queue up and won't run until the one before has finished.

However the thing about this method is that the 'Parent' submission job needs to finish before the next job can be run on that same engine - so if this parent job needs to use information from these completed jobs then this would not be a possibility for you.

View original
Did this help you find an answer to your question?

3 replies

nielsgerrits
VIP
Forum|alt.badge.img+54

Just to be sure: I suspect you use transact instead of submit on purpose because you need the results in the parent workspace?


Forum|alt.badge.img
  • Author
  • February 7, 2019
nielsgerrits wrote:

Just to be sure: I suspect you use transact instead of submit on purpose because you need the results in the parent workspace?

yes @nielsgerrits, that's right. It's running a series of child workspaces and needs to know that the first one is complete before the second one starts


Forum|alt.badge.img+2
  • Best Answer
  • February 7, 2019

Hi @ella_s,

The only way to launch child engine processes in FME Server is via the FMEServerJobSubmitter transformer.

If the important part is that you need each workspace to run in sequence, then you could investigate Job Queues.

So in your HTTPCaller you would use the submit request instead - and as long as they are submitted in the correct run time order then if each job is assigned to run on a queue that has only been assigned a single engine, these jobs will queue up and won't run until the one before has finished.

However the thing about this method is that the 'Parent' submission job needs to finish before the next job can be run on that same engine - so if this parent job needs to use information from these completed jobs then this would not be a possibility for you.


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings