laravel-tool / kafka-queue
Laravel Kafka Queue driver with Horizon support
Installs: 18
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 1
Forks: 0
Open Issues: 0
Type:laravel-plugin
Requires
- php: ^8.3
- ext-json: *
- ext-rdkafka: *
- laravel/framework: >=10
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.