Options
All
  • Public
  • Public/Protected
  • All
Menu

Coordinates execution, tracking, and cancellation of API requests. Multiple API calls can run for the same identifier.

example

const manager = RequestManager.getInstance(); manager.register('123::GetData', request);

Hierarchy

  • RequestManager

Index

Constructors

Properties

cleanupTimer?: Timer

Timer used to periodically clean expired request tracker entries.

logger: Logger
requestTracker: Record<string, RequestTrackerEntry> = {}

Dictionary tracking active requests. Key format: ${requestId}:${executorContext}.

CLEANUP_INTERVAL: number = ...

Cleanup interval

DEFAULT_DELAY: 3000 = 3000

Default Delay time if request is delay only or default type request(both delay and abort)

REQUEST_TRACKER_TTL: number = ...

Request tracker lifetime (30 minutes)

instance: RequestManager

Methods

  • abortAll(): void
  • abortNonActiveRequest(requestId: string): void
  • Helper function for creating a delayed execution for a request

    example

    return this.createDelayedExecution(trackerEntry, request, executor, key, delayTime )

    Type Parameters

    • T

      The expected response type of the request.

    Parameters

    • trackerEntry: RequestTrackerEntry

      The tracker entry associated with the request, used to manage delay state and timer.

    • request: ManagedRequest

      The managed request instance containing abort state.

    • executor: ((request: ManagedRequest) => Promise<T>)

      Function responsible for executing the request.

    • key: string

      Unique identifier for logging and debugging.

    • Optional delayTime: number

      Optional delay duration in milliseconds before executing the request.

    Returns Promise<T>

  • execute<T>(requestId: string, request: ManagedRequest, executor: ((request: ManagedRequest) => Promise<T>), executorContext: string, delayTime?: number): Promise<T>
  • hardAbort(requestId: string): void
  • startRequestTrackerCleanup(): void

Generated using TypeDoc