Skip to main content
Solved

Best Practices for Job Queue configuration

  • September 8, 2017
  • 2 replies
  • 77 views

runneals
Supporter
Forum|alt.badge.img+28

We are looking to utilize Job Queues. Does anyone have any best practices?

  • We have 6 engines to utilize.
  • 2 folders with various real-time operation jobs that run every 3-10 minutes.
  • 1 folder for nightly ETL jobs
  • 1 folder for on-demand jobs that support a web API
  • Multiple folders for other on-demand/weekly to monthly scheduled jobs

Thanks in advance!

Best answer by rylanatsafe

Great question! I see three main categories to consider...

Real-Time: At least one or two dedicated FME Engines. The big conditional is how long the jobs take to process. A frequency of "3-10 minutes" might warrant only one FME Engine, but if the translation time is equal or greater than the frequency... you might need more dedicated resources.

 

On-Demand: At least one dedicated FME Engine – no one likes to wait! Adjust as needed per frequency of requests.

 

Scheduled (Daily/Nightly Jobs): These could probably pull from the larger "Default" pool of FME Engines. Though it depends if you have any mission critical schedules that absolutely need to process as soon as they trigger – those might be better treated as "On-Demand".

 

If you reserve FME Engines for "Real-Time" and "On-Demand" – consider to also let them pull from the larger "Default" pool. In times of high demand the workload might be better spread out.

It's also worth investigating into the FME Server Job Directives.

Hope this helps! I'm sure there will be some other great replies from the FME Community.

This post is closed to further activity.
It may be an old question, an answered question, an implemented idea, or a notification-only post.
Please check post dates before relying on any information in a question or answer.
For follow-up or related questions, please post a new question or idea.
If there is a genuine update to be made, please contact us and request that the post is reopened.

2 replies

rylanatsafe
Safer
Forum|alt.badge.img+14
  • Safer
  • 671 replies
  • Best Answer
  • September 8, 2017

Great question! I see three main categories to consider...

Real-Time: At least one or two dedicated FME Engines. The big conditional is how long the jobs take to process. A frequency of "3-10 minutes" might warrant only one FME Engine, but if the translation time is equal or greater than the frequency... you might need more dedicated resources.

 

On-Demand: At least one dedicated FME Engine – no one likes to wait! Adjust as needed per frequency of requests.

 

Scheduled (Daily/Nightly Jobs): These could probably pull from the larger "Default" pool of FME Engines. Though it depends if you have any mission critical schedules that absolutely need to process as soon as they trigger – those might be better treated as "On-Demand".

 

If you reserve FME Engines for "Real-Time" and "On-Demand" – consider to also let them pull from the larger "Default" pool. In times of high demand the workload might be better spread out.

It's also worth investigating into the FME Server Job Directives.

Hope this helps! I'm sure there will be some other great replies from the FME Community.


jdh
Contributor
Forum|alt.badge.img+37
  • Contributor
  • 2002 replies
  • September 11, 2017

We have three queues for jobs defined as light (<1 min), default and intensive (20min+).

 

the light queue has access to all engines, the default queue to all the engines but one, and the intensive to a specific engine.

 

This insures that there is at least one engine available for the web API interaction, though we also set the tm_priority of those jobs very high, so they can be squeezed in between the more intensive jobs on the other engines.