44
55from confluent_kafka import KafkaError , KafkaException , Message , Producer
66from event_schema .auth import UserLogin , UserLoginKey
7- from fastapi import BackgroundTasks
87
98from auth_backend import __version__
109from auth_backend .kafka .kafkameta import KafkaMeta
1413log = logging .getLogger (__name__ )
1514
1615
17- class AIOKafka (KafkaMeta ):
16+ class Kafka (KafkaMeta ):
1817 """
1918 Класс для работы с Kafka
2019 """
@@ -59,7 +58,7 @@ def delivery_callback(self, err: KafkaError, msg: Message) -> None:
5958 else :
6059 log .info ('%% Message delivered to %s [%d] @ %d\n ' % (msg .topic (), msg .partition (), msg .offset ()))
6160
62- def _produce (self , topic : str , key : UserLoginKey , value : UserLogin ) -> None :
61+ def produce (self , topic : str , key : UserLoginKey , value : UserLogin ) -> None :
6362 """
6463 Отправляет сообщение в Kafka
6564 Args:
@@ -82,29 +81,15 @@ def _produce(self, topic: str, key: UserLoginKey, value: UserLogin) -> None:
8281
8382 self ._producer .poll (0 )
8483
85- async def produce (self , topic : str , key : UserLoginKey , value : UserLogin , * , bg_tasks : BackgroundTasks ) -> None :
86- """
87- Добавляет отправку сообщения в фоновые задачи
88- Args:
89- topic: топик в который будет написано сообщение
90- key: ключ сообщения
91- value: значение сообщение
92- bg_tasks: fastapi background_tasks
93-
94- Returns:
95- Ничего
96- """
97- bg_tasks .add_task (self ._produce , topic , key , value )
98-
99- async def close (self ) -> None :
84+ def close (self ) -> None :
10085 self ._producer .flush ()
10186
10287
103- class AIOKafkaMock (KafkaMeta ):
104- async def produce (self , topic : str , key : Any , value : Any , * , bg_tasks : BackgroundTasks ) -> Any :
88+ class KafkaMock (KafkaMeta ):
89+ def produce (self , topic : str , key : Any , value : Any ) -> Any :
10590 log .debug (f"Kafka cluster disabled, debug msg: { topic = } , { key = } , { value = } " )
10691
107- async def close (self ) -> None :
92+ def close (self ) -> None :
10893 return
10994
11095
@@ -115,5 +100,5 @@ def get_kafka_producer() -> KafkaMeta:
115100 иначе Mock кафки
116101 """
117102 if get_settings ().KAFKA_DSN :
118- return AIOKafka ()
119- return AIOKafkaMock ()
103+ return Kafka ()
104+ return KafkaMock ()
0 commit comments