медленное добавление задачи asyncio
Пишу бота для синхронизации беседы vk и текстового канала discord. Бот работает быстро если сообщение идет из discord к vk, однако в обратном направлении есть довольно большая задержка (максимум который видел 39 секунд). Предполагаю что проблема в добавлении задачи для asyncio. Есть идеи как решить эту проблему? P.S.: извиняюсь за грязный код, это черновик
import vk_api
from vk_api.keyboard import VkKeyboard, VkKeyboardColor
from vk_api.utils import get_random_id
vk = vk_api.VkApi(token='token')
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
longpoll = VkBotLongPoll(vk, 194284961)
vk.get_api()
from vk_api.longpoll import VkLongPoll, VkEventType
import asyncio
from discord.ext import commands
import threading
import time
loop = asyncio.get_event_loop()#############
tasks = list()#############
def hearing(event_for_wait, event_for_set):
for event in longpoll.listen():
if 'reply_message' in event.object.message:
repMess = event.object.message['reply_message']['from_id']
#name2 = vk.users.get(name_case='dat', user_ids=repMess)[0]
name2 = vk.method('users.get', {'user_ids': repMess,'name_case': 'dat'})[0]
WWment = name2['first_name']+' '+name2['last_name']
else:
WWment = None
if event.type == VkBotEventType.MESSAGE_NEW:
authorMess = event.object.message['from_id']
name1 = vk.method('users.get', {'user_ids': authorMess})[0]
Wment = name1['first_name']+' '+name1['last_name']
txtMsg = event.object.message['text']
if WWment == None:
message = '**'+Wment+':** '+txtMsg
tasks.append(loop.create_task(background_task(message)))
else:
message = '**'+Wment+'**'+' в ответ **'+WWment+':** '+txtMsg
tasks.append(loop.create_task(background_task(message)))
e1 = threading.Event()
t1 = threading.Thread(target=hearing, args=(0, e1))
t1.start()
e1.set()
bot = commands.Bot(command_prefix='.')
@bot.event
async def on_message(message):
if message.author.id == 669258354329124904:
author = ''
text = ''
send = False
else:
author = message.author.nick
text = message.content
send = True
if send == True:
messageToVk = author+': '+text
#vk.messages.send(peer_id = 194284961,random_id = get_random_id(), message = "test123123")
vk.method('messages.send', {'chat_id': 3, 'message': messageToVk, 'random_id': get_random_id()})
async def background_task(message):
channel = bot.get_channel(808113492530954240)
await channel.send(message)
token = 'bot_token'
bot.run(token)
event_for_set.set()