Ratelimiter

Content Type: Module
Categories: Data

Overview

Limits the number of microflow calls within a period of time per second. 

- The limit can be set by a Decimal per second by the constant RateLimit  or as a parameter of this action

- If the RatelimitQueueName is provided it works as a pool. In this case, you can manage multiple ratelimits

- Cannot be run in a TaskQueue (Mx9) directly. Create a microflow that runs in a Task Queue and call this Java action :)

- Returns an object

- Useful when API's throttle the amount of calls that you use in Mendix (like Exact, Strava, Spotify etc)

Based on https://guava.dev/releases/22.0/api/docs/index.html?com/google/common/util/concurrent/RateLimiter.html
 

 

Documentation

Ratelimiter Limits the number of microflow calls within a period of time per second.

Features:

  • The limit can be set by a Decimal per second by the constant RateLimit or as a parameter of this action
  • If the LimitSize is provided it works as a pool, so if you provide 5 then all the actions you call with LimitSize 5 use that pool. In this case, you can manage multiple ratelimits

Limitations:

  • Cannot be run in a TaskQueue (Mx9) directly. Create a microflow that runs in a Task Queue and call this Java action :)

Dependency:

  • Community Commons module

Releases

Version: 2.2.0
Framework Version: 8.18.18
Release Notes: Limit per queue and refactor java code
Version: 2.1.1
Framework Version: 8.18.18
Release Notes: Removed unittest dependency by excluding items
Version: 2.1.0
Framework Version: 8.18.18
Release Notes: Added ratelimit queue name to use multiple ratelimits for your integration limits
Version: 1.0.0
Framework Version: 8.18.18
Release Notes: Limits the number of microflow calls within a period of time per second.  - The limit can be set by a Decimal per second by the constant RateLimit  or as a parameter of this action - If the LimitSize is provided it works as a pool, so if you provide 5 then all the actions you call with LimitSize 5 uses that pool. In this case, you can manage multiple ratelimits - Cannot be run in a TaskQueue (Mx9) directly. Create a microflow that runs in a Task Queue and call this Java action :) - Returns an object