Skip to main content
Solved

User experience - Asynch HTTP Caller


lambertus
Enthusiast
Forum|alt.badge.img+12

I consider to replace my Http callers by the Asynch Http caller.

 

I am curious whether other users have experience with this Asynch HTTP Caller. This is related to this idea which is worked out in a transformer.

 

Because the test suite states 'failed', I doubt whether I can use this transformer safely. Anyone experience with this transformer?

 

 

Best answer by nielsgerrits

No experience with the AsyncHTTPCaller but in FME 2021 the HTTPCaller can do up to 100 transfers at a time out of the box. See this Idea and the documentation. (Look for Concurrency / Looping Options.)

 

This parameter controls how features are processed through the transformer. The value of this parameter indicates the maximum number of transfers that will be in progress at the same time.

When the parameter is set to 1, a transfer will be fully processed before the next transfer can begin.

When the parameter is set to a value greater than 1, the transformer will not wait for each transfer to finish before starting the next one. There may be multiple transfers occurring at the same time. This can provide significant performance benefits. This value should be adjusted based on the ability of the HTTP server to handle multiple requests at the same time, taking into consideration that multiple HTTPCaller transformers may be accessing the server at the same time.

This parameter must be set to 1 if the transformer is being used inside a custom transformer which has a loop output.

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

5 replies

nielsgerrits
VIP
Forum|alt.badge.img+54
  • Best Answer
  • January 14, 2022

No experience with the AsyncHTTPCaller but in FME 2021 the HTTPCaller can do up to 100 transfers at a time out of the box. See this Idea and the documentation. (Look for Concurrency / Looping Options.)

 

This parameter controls how features are processed through the transformer. The value of this parameter indicates the maximum number of transfers that will be in progress at the same time.

When the parameter is set to 1, a transfer will be fully processed before the next transfer can begin.

When the parameter is set to a value greater than 1, the transformer will not wait for each transfer to finish before starting the next one. There may be multiple transfers occurring at the same time. This can provide significant performance benefits. This value should be adjusted based on the ability of the HTTP server to handle multiple requests at the same time, taking into consideration that multiple HTTPCaller transformers may be accessing the server at the same time.

This parameter must be set to 1 if the transformer is being used inside a custom transformer which has a loop output.


lambertus
Enthusiast
Forum|alt.badge.img+12
  • Author
  • Enthusiast
  • January 15, 2022

Thanks!

 

The website I take the data from allows for 100 requests per second. Could you help me out how to implement this in the new HTTP Caller?

My goal is to download as soon as possible without exceeding this limit.

 


danminneyatsaf
Safer
Forum|alt.badge.img+12
lambertus wrote:

Thanks!

 

The website I take the data from allows for 100 requests per second. Could you help me out how to implement this in the new HTTP Caller?

My goal is to download as soon as possible without exceeding this limit.

 

Hi @lambertus​ it is possible to set a limit on the number of HTTP requests the transformer will start in a particular time interval using Rate Limiting. In the screenshot attached you can see I'm able to limit the HTTP Caller to 100 requests per second. Hope this helps!

 

image


lambertus
Enthusiast
Forum|alt.badge.img+12
  • Author
  • Enthusiast
  • January 17, 2022

Thanks! What is the relation between the Rate Limiting parameter and the Concurrency/Looping parameter? Is the behaviour of the latter limited by the Rate Limiting parameter values? Hence, sending requests without waiting before the requests sent before did return, with the limitation of 100 requests/second.


danminneyatsaf
Safer
Forum|alt.badge.img+12
lambertus wrote:

Thanks! What is the relation between the Rate Limiting parameter and the Concurrency/Looping parameter? Is the behaviour of the latter limited by the Rate Limiting parameter values? Hence, sending requests without waiting before the requests sent before did return, with the limitation of 100 requests/second.

@lambertus​ the Concurrency/Looping parameter is used to denote if you want to send multiple concurrent requests at a time to the HTTP server. This value should also be adjusted based on the ability of the HTTP server to meet such demands. When Rate Limiting is enabled, concurrent requests may still be sent according to the Maximum Number of Concurrent HTTP Requests parameter, but no more than the Maximum Requests per Interval will be sent to the HTTP Server. If you find the HTTP Caller is not meeting your needs and is no where near meeting the 100 requests per second, you could try increasing the Maximum Number of Concurrent HTTP Requests to speed up your workspace.

 

In any case, the Rate Limiting parameters will help prevent you from over-requesting. You can learn more about this in the HTTP Caller documentation.


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