powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Модераторы: Ихтиандр
6 сообщений из 6, страница 1 из 1
Вялые питоны
    #394983
Ихтиандр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор темы
А вот скажите мне петончики
создаю экземпляр класса для работы с кафкой

пока не задумывался над обработкой ошибок - все работало.
однако ведь не исключено что в топик попало говно не по ожидаемому формату
стал париться обработкой эксепшенов...

в качестве десериалайзера как в примерах прописываю лямбда

трай на сабскрайб прописал - вроде прожевало

Задумка теперь ломать цикл считывания брэйком при ошибке декодирования JSON и посылать обратно на подписку

Где тепарь ловить ValueError при декодировании считываемых сообщений, то есть при обращении к message["FieldName"].value?
в каком месте кода писать try: except?

Пробую так:
Код: Python
1.
2.
3.
4.
5.
6.
7.
    for message in consumer:
      try:
        print ("%s" % (message.value["DateTime"]))
        ...
      except ValueError as vErr:
        print_error("Exception during read/decode JSON from Kafka - {}".format(vErr))
        break
Не обрабатывается эксепшен, вываливается на строке с обращением.
...
Ихтиандр:
Пользователь запросил модераторские права на тему.
Рейтинг: 0 / 0
Вялые питоны
    #395113
IT-Клоп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если так - то какая ошибка?
Код: Python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    for message in consumer:
      try:
        print ("%s" % (message.value["DateTime"]))
        ...
      except ValueError as vErr:
        print_error("Exception during read/decode JSON from Kafka - {}".format(vErr))
        break
      except Exception as e:
        print("Exception is {}",format(e))
        break
...
Рейтинг: 0 / 0
Вялые питоны
    #395238
Администратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Пользователь назначен модератором темы: Ихтиандр.
...
Администратор:
Пользователь назначен модератором темы: Ихтиандр.
Рейтинг: 0 / 0
Вялые питоны
    #396654
Ихтиандр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор темы
Да вроде ловится except (ValueError, KeyError,TypeError) as ve
Хотел еще обрабатывать ошибки кафки, если там обрыв случится.
Пытаюсь except KafkaEror писать - пишет что не описан KafkaError

В чем дело может быть?
...
Рейтинг: 0 / 0
Вялые питоны
    #397121
Кусь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ихтиандр  15.05.2023, 14:25
[игнорируется]
однако ведь не исключено что в топик попало говно не по ожидаемому формату
На этот случай надо использовать Schema Registry и JsonSerializer, а не твой самопал с перехватом в Exception.
Ихтиандр  15.05.2023, 14:25
[игнорируется]
Где тепарь ловить ValueError
С чего ты взял, что тебе надо ловить только ValueError, а не другие ошибки (например JSONDecodeError), которые у твоём коде просто не перехватываются?
...
Рейтинг: 0 / 0
Вялые питоны
    #397125
Кусь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ихтиандр  16.05.2023, 16:26
[игнорируется]
Хотел еще обрабатывать ошибки кафки, если там обрыв случится.
Обрыв чего? У тебя консюмер посылает регулярно heartbeat на Kafka кластер. Попробуй запустить консюмер, потом останови кластер при работающем консюмере и посмотри какую ошибку кидает твой питонячий консюмер. Её и перехватывай потом
...
Изменено: 16.05.2023, 22:54 - Кусь
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Модераторы: Ихтиандр
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]