1

私は symfony 4 + エンキュー ( 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に基づく)

4

1 に答える 1