Skip to main content
Version: Next

SemaphoreStorage

SemaphoreStorage

Interface for semaphore storage implementations. Provides methods to store, retrieve, and manage semaphore permit data.

Signature
interface SemaphoreStorage {
acquire(
key: string,
timeout?: number,
signal?: AbortSignal,
): Promise<boolean>;
release(key: string): Promise<void>;
getAvailablePermits(key: string): Promise<number>;
getTotalPermits(key: string): Promise<number>;
}

acquire

method
(key: string, timeout?: number, 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