Skip to content

RateLimiter

RateLimiter — clase para controlar la tasa de solicitudes a la Rest API. La instancia singleton está disponible a través de la propiedad rest.rateLimiter después de la inicialización de Frame.

Limita automáticamente el número de solicitudes por segundo, encola las solicitudes cuando se supera el límite y reintenta las solicitudes al recibir un error HTTP 429.

ts
import { RateLimiter } from '@flowlu/miniapp-jssdk'

Propiedades

lastRequestTime

Marca de tiempo (ms) de la última solicitud enviada

ts
get lastRequestTime(): number

limit

Número máximo de solicitudes por segundo. El valor se obtiene del contexto en la primera llamada a la Rest API mediante Rest.get() o Rest.post(). Un valor de -1 significa que el límite aún no se ha recibido del contexto

ts
get limit(): number

processing

Número de solicitudes que se están procesando actualmente

ts
get processing(): number

remaining

Número de solicitudes restantes antes de alcanzar el límite. El valor se actualiza al recibir cada respuesta de la Rest API

ts
get remaining(): number

reset

Marca de tiempo (ms) después de la cual se reinicia el límite. El valor se actualiza al recibir cada respuesta de la Rest API

ts
get reset(): number

Métodos

getInstance

Devuelve la instancia singleton actual de RateLimiter

ts
static getInstance(): RateLimiter

destroy

Elimina las suscripciones y libera los recursos

ts
destroy(): void

Ejemplo

ts
import { App, RateLimiter, Rest } from '@flowlu/miniapp-jssdk'

await App.initializeFrame()

const rest = Rest.getInstance()
const rateLimiter = RateLimiter.getInstance()

// obtener el usuario actual
const user = await rest.get('/core/user/get/')

// leer los valores actuales del límite de solicitudes
console.log({
  limit: rateLimiter.limit,
  remaining: rateLimiter.remaining,
  reset: rateLimiter.reset,
})
js
const App = window.FlowluMiniApp;

const frame = await App.initializeFrame();

// obtener el usuario actual
const user = await frame.rest.get('/core/user/get/');

// leer los valores actuales del límite de solicitudes
console.log({
  limit: frame.rest.rateLimiter.limit,
  remaining: frame.rest.rateLimiter.remaining,
  reset: frame.rest.rateLimiter.reset,
});

Publicado bajo la licencia MIT.