Асинхронная обработка сообщений, бот ВК, чем реализовать?

Есть обработчик новых сообщений в группе вк.
Вот часть кода отвечающая за это:
#функция, добавляющая в словарь с ИД пользователя запрос.
def vvod(znk, bib):
    dict_id[messages['items'][0]['last_message']['peer_id']][znk] = [bib[event.object.text]]

while True:
    try:
        for event in longpoll.listen():
            if event.type == VkBotEventType.MESSAGE_NEW:
                messages = vk.method("messages.getConversations", {"offset": 0, "count": 200, "filter": "unanswered"})
#dict_id - словарь с ИД пользователей, которые написали что-то в чат 
                dict_id[messages['items'][0]['last_message']['peer_id']] = {}
#repl - список возможных команд
                if event.object.text in repl:
#если ввели команду - добавляем команду в словарь с запросами
                    vvod('day', diday)

По итогу в словаре с запросами три переменных исходя из которых формируется выборка из базы данных, но не суть
Проблема в том, что если одновременно два пользователя воспользуются функцией vvod то, она пропишет в словаре запросов(дикт_ид) запрос только для того, кто первым обратился к ней. При чем, почему-то сделает это два раза, в итоге получим словарь: {ИДПЕРВОГО: {'day': ['значение']}, ИДВТОРОГО: {}}
Вопрос: с помощью чего можно реализовать асинхронную обработку?
Если можно то поподробнее
  • Вопрос задан
  • 269 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы