Skip to main content

Class: HttpRateLimiter

Defined in: electron/services/monitoring/utils/httpRateLimiter.ts:16

Lightweight in-memory rate limiter for HTTP monitor requests.

Constructors

Constructor

new HttpRateLimiter(maxConcurrent: number, minIntervalMs: number, maxWaitMs: number): HttpRateLimiter

Defined in: electron/services/monitoring/utils/httpRateLimiter.ts:81

Parameters

maxConcurrent

number

minIntervalMs

number

maxWaitMs

number = 30_000

Returns

HttpRateLimiter

Properties

lastInvocation

private readonly lastInvocation: Map<string, number>

Defined in: electron/services/monitoring/utils/httpRateLimiter.ts:17


active

private active: number = 0

Defined in: electron/services/monitoring/utils/httpRateLimiter.ts:19


maxConcurrent

private readonly maxConcurrent: number

Defined in: electron/services/monitoring/utils/httpRateLimiter.ts:21


minIntervalMs

private readonly minIntervalMs: number

Defined in: electron/services/monitoring/utils/httpRateLimiter.ts:23


maxWaitMs

private readonly maxWaitMs: number

Defined in: electron/services/monitoring/utils/httpRateLimiter.ts:25

Methods

schedule()

schedule<T>(url: string, fn: () => Promise<T>): Promise<T>

Defined in: electron/services/monitoring/utils/httpRateLimiter.ts:30

Schedule a function respecting concurrency and rate limits.

Type Parameters

T

T

Parameters

url

string

fn

() => Promise<T>

Returns

Promise<T>


getKey()

private getKey(url: string): string

Defined in: electron/services/monitoring/utils/httpRateLimiter.ts:72

Parameters

url

string

Returns

string