Discord.py Переписать: функции внезапно перестали работать

#python-3.x #discord.py

#python-3.x #discord.py

Вопрос:

Последние несколько дней я возился с перезаписью python-бота discord. Я заметил, что добавление нескольких функций приводит к тому, что другие функции перестают работать. Я добавил задачу цикла, которая отправляет видео из случайного списка URL-адресов, и сначала я подумал, что это может привести к тому, что другие функции перестанут работать, но комментирование этого по-прежнему вызывает проблемы. Это довольно раздражает, когда у вас нет сообщений об ошибках, из которых можно было бы выйти. Любая помощь будет с благодарностью!

 import discord
from discord.ext import commands, tasks
import re
from random import randint

client = commands.Bot(command_prefix = "//")

@client.event
async def on_ready():
    print("The bot is doing stuff.")


@client.event
async def on_message(message):
    """Deletes <specific> YT link"""

    if <specific yt link> in message.content: 
        await message.delete()
        print("video deleted")


@client.event
async def on_message(message):
    "Sends a peeposalute whenever someone says 'goodnight'"

    gn = re.compile('goodnight|good night|gn')
    if gn.search(message.content.lower()): 
        await message.channel.send('<:peepoSalute:665687773407215637>')
        print('peepo has saluted')


@client.event
async def on_message(message):
    """Checks the #new-uploads channel, reacts to any new messages and adds the video URL to the list"""

    if message.channel.id == <channel id>:
        with open('videos.txt', 'a') as f:
            f.write(message.content   'n')
            print("New video added to list")
        message.add_reaction('<:Wowee:592122719546638408>')


@tasks.loop(hours=24)
async def daily_video():
    """Sends a random video in #general daily"""

    with open('videos.txt', 'r') as f:
        videos = f.readlines()

    target_general_id = <channel id>
    general_id = client.get_channel(target_general_id)
    await general_id.send(videos[randint(0, len(videos) - 1)])
    print("Daily video sent")

@daily_video.before_loop
async def before():
    await client.wait_until_ready()
    print("Finished waiting")

daily_video.start()

client.run(<token>)
  

Комментарии:

1. Простое объяснение заключается в том, что вы выполняете слишком много работы над потоком, который использует asyncio; подключаете его. Убедитесь, что у вас нет кода, который блокирует рабочий поток. Возможно, разбросайте некоторые print s или используйте отладчик, чтобы найти, где он останавливается.

2. Или, скорее, я должен был сказать: » Вероятное объяснение заключается в том, что вы выполняете слишком много работы над потоком, который использует asyncio».