Final Class Yiisoft\Queue\SyncQueueProducer
| Inheritance | Yiisoft\ |
|---|---|
| Implements | Yiisoft\ |
Producer that runs each message synchronously, in the same process as the caller.
Public Methods
Method Details
| public mixed __construct ( \ | ||
| $logger | \ |
|
| $middlewareConfig | Yiisoft\ |
|
| $worker | Yiisoft\ |
|
| $queueName | string|\ |
|
| $middlewareDefinitions | array |
Queue-specific push middleware definitions. |
public function __construct(
private readonly LoggerInterface $logger,
PushMiddlewareConfig $middlewareConfig,
WorkerInterface $worker,
string|BackedEnum $queueName = DefaultQueue::NAME,
array $middlewareDefinitions = [],
) {
$this->queueName = StringNormalizer::normalize($queueName);
$this->dispatcher = new PushMiddlewareDispatcher(
middlewareFactory: $middlewareConfig->middlewareFactory,
middlewareDefinitions: [...$middlewareConfig->commonMiddlewareDefinitions, ...$middlewareDefinitions],
finishHandler: new SynchronousPushHandler($worker, $this),
);
}
| public Yiisoft\ | ||
| $message | Yiisoft\ |
|
public function push(MessageInterface $message): MessageInterface
{
$this->logger->debug('Preparing to push message with message type "{messageType}".', ['messageType' => $message->getType()]);
$message = $this->dispatcher->dispatch($message);
$this->logger->info('Processed message with message type "{messageType}" synchronously.', ['messageType' => $message->getType()]);
return $message;
}
User Contributed Notes
Leave a comment
Join the conversation to share a note.