PHP code example of bytespin / messenger-dedupe-bundle
1. Go to this page and download the library: Download bytespin/messenger-dedupe-bundle library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
bytespin / messenger-dedupe-bundle example snippets
$this->messageBus->dispatch(
new Envelope(
$message,
[
new TransportNamesStamp('async'),
new HashStamp($messageHash),
]
)
);
(...)
$this->messageBus->dispatch(
new Envelope(
$message,
[
new TransportNamesStamp('remote_async_transport'),
new HashStamp($messageHash),
new MasterStamp('initiator_async_transport')
]
)
);
use ByteSpin\MessengerDedupeBundle\Messenger\Stamp\HashStamp;
use ByteSpin\MessengerDedupeBundle\Messenger\Stamp\InitiatorStamp;
use ByteSpin\MessengerDedupeBundle\Model\RemoveDedupeHash;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Messenger\Envelope;
use Symfony\Component\Messenger\Event\WorkerMessageFailedEvent;
use Symfony\Component\Messenger\Event\WorkerMessageHandledEvent;
use Symfony\Component\Messenger\MessageBusInterface;
use Symfony\Component\Messenger\Stamp\TransportNamesStamp;
readonly class MessageHandledOrFailedEventSubscriber implements EventSubscriberInterface
{
public function __construct(
private MessageBusInterface $messageBus,
) {
}
public static function getSubscribedEvents(): array
{
return [
WorkerMessageHandledEvent::class => 'onMessageProcessed',
WorkerMessageFailedEvent::class => 'onMessageProcessed',
];
}
public function onMessageProcessed(WorkerMessageHandledEvent $event): void
{
// remove hash on remote message initiator, only if a remote master has been defined
$envelope = $event->getEnvelope();
$hashStamp = $envelope->last(HashStamp::class);
$masterStamp = $envelope->last(MasterStamp::class);
if ($hashStamp && $masterStamp) {
$transportName = $masterStamp->getMaster();
$hash = $hashStamp->getHash();
$this->messageBus->dispatch(
new Envelope(
new RemoveDedupeHash(
$hash
),
[
new TransportNamesStamp($transportName),
]
)
);
}
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.