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;
|
2021-08-11 01:04:57 +08:00
|
|
|
use Kiri\Abstracts\Config;
|
|
|
|
|
use Kiri\Abstracts\Config as SConfig;
|
|
|
|
|
use Kiri\Abstracts\Providers;
|
|
|
|
|
use Kiri\Application;
|
2020-10-09 16:34:33 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Class QueueProviders
|
|
|
|
|
* @package Queue
|
|
|
|
|
*/
|
2021-08-04 14:37:12 +08:00
|
|
|
class KafkaImports extends Providers
|
2020-10-09 16:34:33 +08:00
|
|
|
{
|
|
|
|
|
|
2021-08-05 15:15:42 +08:00
|
|
|
/**
|
|
|
|
|
* @param Application $application
|
|
|
|
|
* @throws Exception
|
|
|
|
|
*/
|
|
|
|
|
public function onImport(Application $application)
|
|
|
|
|
{
|
|
|
|
|
if (!extension_loaded('rdkafka')) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
$kafka = SConfig::get('kafka', ['enable' => false]);
|
|
|
|
|
if (($kafka['enable'] ?? false) == false) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
$kafkaServers = Config::get('kafka.consumers', []);
|
|
|
|
|
if (empty($kafkaServers)) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
/** @var Server $server */
|
|
|
|
|
$server = $application->get('server');
|
|
|
|
|
foreach ($kafkaServers as $kafkaServer) {
|
|
|
|
|
$server->addProcess(new Kafka($kafkaServer));
|
|
|
|
|
}
|
|
|
|
|
}
|
2020-10-09 16:34:33 +08:00
|
|
|
|
|
|
|
|
}
|