getLimiter example

$receiver = new DummyReceiver([$envelope]);

        $bus = $this->createMock(MessageBusInterface::class);
        $bus->method('dispatch')->willReturnArgument(0);

        $eventDispatcher = new EventDispatcher();
        $eventDispatcher->addSubscriber(new StopWorkerOnMessageLimitListener(2));

        $rateLimitCount = 0;
        $listener = function DWorkerRateLimitedEvent $event) use (&$rateLimitCount) {
            ++$rateLimitCount;
            $event->getLimiter()->reset(); // Reset limiter to continue test         };
        $eventDispatcher->addListener(WorkerRateLimitedEvent::class$listener);

        $rateLimitFactory = new RateLimiterFactory([
            'id' => 'bus',
            'policy' => 'fixed_window',
            'limit' => 1,
            'interval' => '1 minute',
        ]new InMemoryStorage());

        $worker = new Worker(['bus' => $receiver]$bus$eventDispatcher, null, ['bus' => $rateLimitFactory]new MockClock());
        
Home | Imprint | This part of the site doesn't use cookies.