You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace core\dispatchers;
|
|
|
|
|
|
|
|
use core\jobs\AsyncEventJob;
|
|
|
|
use yii\queue\Queue;
|
|
|
|
|
|
|
|
class AsyncEventDispatcher implements EventDispatcher
|
|
|
|
{
|
|
|
|
private Queue $queue;
|
|
|
|
|
|
|
|
public function __construct(Queue $queue)
|
|
|
|
{
|
|
|
|
$this->queue = $queue;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function dispatchAll(array $events): void
|
|
|
|
{
|
|
|
|
foreach ($events as $event) {
|
|
|
|
$this->dispatch($event);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public function dispatch($event): void
|
|
|
|
{
|
|
|
|
$this->queue->push(new AsyncEventJob($event));
|
|
|
|
}
|
|
|
|
}
|