RateLimiter

class RateLimiter(val maxConcurrent: Int)

Rate limiter for controlling concurrent task execution.

val config = KmpWorkerConfig.current()
val limiter = RateLimiter(maxConcurrent = 3)

// In task execution:
limiter.acquire()
try {
doWork()
} finally {
limiter.release()
}

Parameters

maxConcurrent

Maximum number of tasks that can execute simultaneously.

Constructors

Link copied to clipboard
constructor(maxConcurrent: Int)

Properties

Link copied to clipboard

Number of currently executing tasks.

Link copied to clipboard

Functions

Link copied to clipboard
suspend fun acquire()

Acquires a permit, suspending if the limit is reached.

Link copied to clipboard
fun release()

Releases a permit.

Link copied to clipboard
suspend fun <T> withPermit(block: suspend () -> T): T

Executes block within a rate-limited context.