Skip to main content
Version: 1.x

MemorySemaphoreStorage

MemorySemaphoreStorage​

In-memory storage implementation for semaphore permits. Suitable for single-instance applications.

Signature
class MemorySemaphoreStorage implements SemaphoreStorage {
acquire(key: string, timeout: number = 30000, signal?: AbortSignal) => Promise<boolean>;
release(key: string) => Promise<void>;
getAvailablePermits(key: string) => Promise<number>;
getTotalPermits(key: string) => Promise<number>;
initialize(key: string, permits: number) => void;
}

acquire​

method
(key: string, timeout: number = 30000, signal?: AbortSignal) => Promise<boolean>

Attempts to acquire a permit for a given key

release​

method
(key: string) => Promise<void>

Releases a permit for a given key

getAvailablePermits​

method
(key: string) => Promise<number>

Gets the number of available permits for a given key

getTotalPermits​

method
(key: string) => Promise<number>

Gets the total number of permits for a given key

initialize​

method
(key: string, permits: number) => void

Initializes a semaphore with the specified number of permits