Wolf_Yout
@Wolf_Yout

Почему при добавлении каких либо циклов в событие on_ready, бот зависает?

Вот что я натяпал:
@bot.event
async def on_ready():
    print(f"System Running Ready!")
    await bot.change_presence(status=discord.Status.idle, activity=discord.Activity(type = discord.ActivityType.playing, name=f'{len(bot.guilds)} сервер!'))
    while True:
        if time.strftime("%H:%M") == "11:30":
            for guild in bot.guilds:
                await guild.text_channels[2].send(embed = discord.Embed(title="Текст",description="Текст"))
        time.sleep(30)

bot.run(data_bot["token"])

И после публикаций этого в хостинг, в консоль выдаётся сообщение об успешном запуске, но сам бот не запустился.
Как это исправить?
  • Вопрос задан
  • 228 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Потому что ты делаешь вечный цикл, а бот ожидает завершения (await) вызова on_ready().
Нужна параллельная задача - вынеси её в отдельный async-метод, а в on_ready() запускай этот метод через create_task().

А на будущее, если придётся делать более одной рассылки, познакомься с aioschedule.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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