Files
kiri-core/Kafka/KafkaProviders.php
T

50 lines
966 B
PHP
Raw Normal View History

2020-10-09 16:34:33 +08:00
<?php
2020-10-29 18:17:25 +08:00
declare(strict_types=1);
2020-10-09 16:34:33 +08:00
namespace Kafka;
use Exception;
use HttpServer\Server;
2020-12-28 18:21:20 +08:00
use Snowflake\Abstracts\Config;
2020-10-09 16:34:33 +08:00
use Snowflake\Abstracts\Config as SConfig;
use Snowflake\Abstracts\Providers;
use Snowflake\Application;
/**
* Class QueueProviders
* @package Queue
*/
class KafkaProviders extends Providers
{
/**
* @param Application $application
* @throws Exception
*/
public function onImport(Application $application)
{
/** @var Server $server */
$server = $application->get('server');
2020-11-02 16:30:09 +08:00
$application->set('kafka', ['class' => Producer::class]);
2020-10-09 16:34:33 +08:00
$kafka = SConfig::get('kafka');
if (empty($kafka) || !($kafka['enable'] ?? false)) {
return;
}
2020-11-02 16:30:09 +08:00
if (!extension_loaded('rdkafka')) {
return;
}
2020-12-28 18:21:20 +08:00
2021-04-04 17:12:41 +08:00
$kafkaServers = Config::get('kafka.consumers', []);
2020-12-28 18:21:20 +08:00
if (empty($kafkaServers)) {
return;
}
foreach ($kafkaServers as $index => $kafkaServer) {
$server->addProcess('kafka_' . $index, Kafka::class, $kafkaServer);
}
2020-10-09 16:34:33 +08:00
}
}