Я использую symfony 4 + enqueue (https://github.com/sroze/messenger-enqueue-transport + https://packagist.org/packages/enqueue/pheanstalk ) для запуска асинхронных заданий в beanstalk.
Прямо сейчас у меня есть:
/**
* @var Symfony\Component\EventDispatcher\EventDispatcherInterface
*/
private $eventDispatcher;
$event = new ArticleEvent("test title", "test description");
$this->eventDispatcher->dispatch($event, "article.publish");
Но я хочу, чтобы это задание было обработано с опозданием.
Документация подсказывает мне рефакторинг, например:
use Enqueue\MessengerAdapter\EnvelopeItem\TransportConfiguration;
use Symfony\Component\Messenger\Envelope;
$event = new ArticleEvent("test title", "test description");
$transportConfig = (new TransportConfiguration())->setDeliveryDelay(5000);
$this->eventDispatcher->dispatch((new Envelope($event))->with($transportConfig));
Проблема в том, что я не вижу, где разместить название события (article.publish
)
(На основе https://github.com/sroze/messenger-enqueue-transport#setting-custom-configuration-on-your-message)