bootdesk/chat-sdk

DefaultConcurrencyHandler
in package
implements ConcurrencyHandler

Table of Contents

Interfaces

ConcurrencyHandler

Properties

$concurrentSlots  : array<string, int>
$config  : array<string|int, mixed>
$state  : StateAdapter

Methods

__construct()  : mixed
process()  : void
Process an incoming message, applying the concurrency strategy.
applyStrategy()  : void
dequeueAll()  : array<string|int, Message>
drainAllQueued()  : void
processConcurrent()  : void
processDebounce()  : void
processDrop()  : void
processQueue()  : void

Properties

Methods

process()

Process an incoming message, applying the concurrency strategy.

public process(Adapter $adapter, string $threadId, Message $message, callable $processCallback[, ServerRequestInterface|null $request = null ]) : void
Parameters
$adapter : Adapter

The platform adapter

$threadId : string

The canonical thread ID

$message : Message

The incoming message (post-dedup, post-middleware)

$processCallback : callable

fn(Adapter, string $threadId, Message, array $skippedMessages, int $totalSinceLastHandler): void

$request : ServerRequestInterface|null = null

The original PSR-7 request (for job serialization)

applyStrategy()

private applyStrategy(Strategy $strategy, Adapter $adapter, string $threadId, string $lockKey, Message $message, Handler $handler, int $debounceMs, int $maxConcurrent, int $maxQueueSize, callable $processCallback) : void
Parameters
$strategy : Strategy
$adapter : Adapter
$threadId : string
$lockKey : string
$message : Message
$handler : Handler
$debounceMs : int
$maxConcurrent : int
$maxQueueSize : int
$processCallback : callable

processConcurrent()

private processConcurrent(Adapter $adapter, string $threadId, Message $message, int $maxConcurrent, callable $processCallback) : void
Parameters
$adapter : Adapter
$threadId : string
$message : Message
$maxConcurrent : int
$processCallback : callable

processDebounce()

private processDebounce(Adapter $adapter, string $threadId, string $lockKey, Message $message, Handler $handler, int $debounceMs, int $maxQueueSize, callable $processCallback) : void
Parameters
$adapter : Adapter
$threadId : string
$lockKey : string
$message : Message
$handler : Handler
$debounceMs : int
$maxQueueSize : int
$processCallback : callable

processQueue()

private processQueue(Adapter $adapter, string $threadId, string $lockKey, Message $message, Handler $handler, int $maxQueueSize, callable $processCallback) : void
Parameters
$adapter : Adapter
$threadId : string
$lockKey : string
$message : Message
$handler : Handler
$maxQueueSize : int
$processCallback : callable
On this page

Search results