Closed MurzNN closed 4 years ago
Лог есть:
494 log.debug("try exec requests.post(%s)"%url)
495 r = requests.post(url,timeout=conf.post_timeout)
496 log.debug("requests.post return: %s"%r.text)
Иногда приходит одно сообщение, иногда штук пять в течение нескольких секунд.
тоже заметил, что иногда такое бывает. Наверное не с проста в новых версиях АПИ они добавили уникальный uid сообщения, который перед отправкой надо сгенерить и вложить в сообщение. Просто рэндомный uid. Видать против дублей :-)
вроде должно было в последних версиях поправиться и не должно проявляться. Или ещё бывает?
Раз не повторяется больще - закрываю баг.
Баг все-таки появляется. При этом в сочетании с тем, что сообщения из вк не приходят в матрикс. Звездочки поставил для анонности. Похоже, что сообщение он получает, но до матрикса оно не доходит. Вот, что в логе:
2020-07-05 12:24:39,589 - MatrixVkBot - bot.py:488 - get_new_vk_messages_v2() DEBUG - get polling with ts=1613532349
2020-07-05 12:24:39,589 - MatrixVkBot - bot.py:496 - get_new_vk_messages_v2() DEBUG - try exec requests.post(https://im.vk.com/nim***?act=a_check&key=***&ts=1613532349&wait=25&mode=2&version=3)
2020-07-05 12:24:45,132 - MatrixVkBot - bot.py:498 - get_new_vk_messages_v2() DEBUG - requests.post return: {"ts":1613532353,"updates":[[4,497959,17,***,1593941085,"тестовое сообщение",{"title":" ... "},{}],[80,1,0],[6,***,497959,0],[80,0,0]]}
2020-07-05 12:24:45,132 - MatrixVkBot - bot.py:508 - get_new_vk_messages_v2() DEBUG - try lock() before access global data()
2020-07-05 12:24:45,132 - MatrixVkBot - bot.py:510 - get_new_vk_messages_v2() DEBUG - success lock() before access global data
2020-07-05 12:24:45,133 - MatrixVkBot - bot.py:513 - get_new_vk_messages_v2() DEBUG - release lock() after access global data
2020-07-05 12:24:45,133 - MatrixVkBot - bot.py:584 - get_new_vk_messages_v2() INFO - getting info about new events - try get events...
2020-07-05 12:24:45,133 - MatrixVkBot - bot.py:606 - get_new_vk_messages_v2() DEBUG - try lock() before access global data()
2020-07-05 12:24:45,133 - MatrixVkBot - bot.py:608 - get_new_vk_messages_v2() DEBUG - success lock() before access global data
2020-07-05 12:24:45,133 - MatrixVkBot - bot.py:611 - get_new_vk_messages_v2() DEBUG - release lock() after access global data
2020-07-05 12:24:45,133 - MatrixVkBot - bot.py:612 - get_new_vk_messages_v2() DEBUG - thread: exit_flag=0
2020-07-05 12:24:45,133 - MatrixVkBot - bot.py:618 - get_new_vk_messages_v2() DEBUG - session=
2020-07-05 12:24:45,133 - MatrixVkBot - bot.py:619 - get_new_vk_messages_v2() DEBUG -
2020-07-05 12:24:45,134 - MatrixVkBot - bot.py:756 - get_session() DEBUG - =start function=
2020-07-05 12:24:45,134 - MatrixVkBot - bot.py:621 - get_new_vk_messages_v2() DEBUG - session=
2020-07-05 12:24:45,134 - MatrixVkBot - bot.py:622 - get_new_vk_messages_v2() DEBUG - <vk.api.Session object at 0x7f6d85152a90>
2020-07-05 12:24:45,134 - MatrixVkBot - bot.py:629 - get_new_vk_messages_v2() DEBUG - try exec api.messages.getLongPollHistory()
2020-07-05 12:24:45,135 - MatrixVkBot - bot.py:680 - get_new_vk_messages_v2() ERROR - Traceback (most recent call last):
File "./bot.py", line 631, in get_new_vk_messages_v2
ts=data["users"][user]["vk"]["ts"],\
KeyError: 'ts'
2020-07-05 12:24:45,135 - MatrixVkBot - bot.py:681 - get_new_vk_messages_v2() ERROR - exception at execute get_new_vk_messages_v2()
2020-07-05 12:24:45,136 - MatrixVkBot - bot.py:1161 - bot_system_message() DEBUG - =start function=
2020-07-05 12:24:45,136 - MatrixVkBot - bot.py:1162 - bot_system_message() INFO - ошибка получения сообщений из ВК. Ошибка работы с ВК-апи в функции get_new_vk_messages_v2()
Бот при входящих сообщениях периодически выводит ошибку в управляюшую комнату:
Иногда приходит одно сообщение, иногда штук пять в течение нескольких секунд. В основном ночью - часа в 4-6 утра, но иногда и днём.
Потерю сообщений вроде бы не заметил при этом, просто временно пропадает синхронизация, и через пару минут снова работает.
Возможно API ВК периодически отваливается и возвращает ошибку. Надо бы сделать вывод в лог полного дампа ответа от ВК, чтобы понять что API отвечает в момент этой ошибки. Ну и обработчик этой ошибки запилить можно будет тогда, чтобы молча обрабатывал, не будя людей ;)