Stop consumer on demand

Sometimes, you may want to stop your consumer based on a given message or any other condition.

You can do it by adding a calling stopConsuming() method on the MessageConsumer instance that is passed as the second argument of your message handler:

$consumer = \Junges\Kafka\Facades\Kafka::consumer(['topic'])
    ->withConsumerGroupId('group')
    ->stopAfterLastMessage()
    ->withHandler(static function (\Junges\Kafka\Contracts\ConsumerMessage $message, \Junges\Kafka\Contracts\MessageConsumer $consumer) {
        if ($someCondition) {
            $consumer->stopConsuming();
        }
    })
    ->build();

$consumer->consume();

The onStopConsuming callback will be executed before stopping your consumer.

Sponsorship

Support Laravel Kafka by sponsoring me!

Laravel Kafka is free and Open Source software, built to empower developers like you. Your support helps maintain and enhance the project. If you find it valuable, please consider sponsoring me on GitHub. Every contribution makes a difference and keeps the development going strong! Thank you!

Become a Sponsor Want to hide this message? Sponsor at any tier of $10/month or more!