laravel-tool/kafka-queue

Laravel Kafka Queue driver with Horizon support

Installs: 1

Dependents: 0

Suggesters: 0

Security: 0

Stars: 2

Watchers: 1

Forks: 0

Open Issues: 0

Type:laravel-plugin

1.2.0 2024-04-22 10:42 UTC

This package is auto-updated.

Last update: 2024-04-22 10:43:12 UTC


README

Laravel Kafka Queue connection with Horizon support

Installation

1. Composer

composer require laravel-tool/kafka-queue

2. Add to config/queue.php

'kafka' => [
    'driver' => 'kafka',
    'broker_list' => env('KAFKA_BROKER_LIST', 'kafka:9092'),
    'auth' => [
        'enable' => env('KAFKA_AUTH_ENABLE', false),
        'mechanism' => env('KAFKA_AUTH_MECHANISM', 'PLAIN'),
        'username' => env('KAFKA_AUTH_USERNAME'),
        'password' => env('KAFKA_AUTH_PASSWORD'),
        'ssl_ca_location' => env('KAFKA_AUTH_SSL_CA_LOCATION'),
    ],
    'queue' => env('KAFKA_QUEUE', 'default'),
    'heartbeat_ms' => env('KAFKA_HEARTBEAT', 5000),
    'group_name' => env('KAFKA_QUEUE_GROUP', 'default'),
    'producer_timeout_ms' => 1000,
    'consumer_timeout_ms' => 3000,
    'queue_disable_length' => false, // Disable this if trouble with performance
    'horizon' => true, // Support for Laravel Horizon
    'after_commit' => false,
],

Caution

It is not recommended to use it with delayed tasks due to the way Kafka works. When a deferred task reaches the execution time, it is again placed at the end of the queue and so on until the moment when it is allowed to be executed.