0

Final Class Yiisoft\Queue\Middleware\Consume\ConsumeMiddlewareDispatcher

InheritanceYiisoft\Queue\Middleware\Consume\ConsumeMiddlewareDispatcher

Method Details

Hide inherited methods

__construct() public method

public mixed __construct ( Yiisoft\Queue\Middleware\Consume\ConsumeMiddlewareFactoryInterface $middlewareFactory, array|callable|string|Yiisoft\Queue\Middleware\Consume\ConsumeMiddlewareInterface $middlewareDefinitions )
$middlewareFactory Yiisoft\Queue\Middleware\Consume\ConsumeMiddlewareFactoryInterface
$middlewareDefinitions array|callable|string|Yiisoft\Queue\Middleware\Consume\ConsumeMiddlewareInterface

                public function __construct(
    private readonly ConsumeMiddlewareFactoryInterface $middlewareFactory,
    array|callable|string|ConsumeMiddlewareInterface ...$middlewareDefinitions,
) {
    $this->middlewareDefinitions = array_reverse($middlewareDefinitions);
}

            
dispatch() public method

Dispatch request through middleware to get response.

public Yiisoft\Queue\Middleware\Consume\ConsumeRequest dispatch ( Yiisoft\Queue\Middleware\Consume\ConsumeRequest $request, Yiisoft\Queue\Middleware\Consume\ConsumeHandlerInterface $finalHandler )
$request Yiisoft\Queue\Middleware\Consume\ConsumeRequest

Request to pass to middleware.

$finalHandler Yiisoft\Queue\Middleware\Consume\ConsumeHandlerInterface

Handler to use in case no middleware produced a response.

                public function dispatch(
    ConsumeRequest $request,
    ConsumeHandlerInterface $finalHandler,
): ConsumeRequest {
    $type = $request->getMessage()->getType();
    if (!array_key_exists($type, $this->stack)) {
        $this->stack[$type] = new ConsumeMiddlewareStack($this->buildMiddlewares(), $finalHandler);
    }
    return $this->stack[$type]->handleConsume($request);
}