Discord Bot. bot.loop.create_task(background_task()) не работает

#python #discord #discord.py

#python #Discord #discord.py

Вопрос:

У меня есть этот код:

 import asyncio
import random

from discord.ext import commands

bot = commands.Bot(command_prefix='.')

a=['Hello','Hi','Hello World']

async def background_task():
    time = 5 # 86400
    await asyncio.sleep(time)
    w = random.choice(a)
    q = "".join(w)
    message = q
    await bot.get_channel(id_channel).send(message)

async def on_ready():
    print('Bot logged as {}'.format(bot.user))


async def on_message(ctx):
    pass

bot.loop.create_task(background_task())
token = 'token'
bot.run(token)
  

Мне нужно выполнить цикл background_task(). Но bot.loop.create_task(background_task()) не работает. Что мне делать? Я буду благодарен за вашу помощь.

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

1. Чего вы ожидаете? Эта функция будет выполняться только один раз, потому что вы не указываете ей цикл или что-то еще, а также при первом запуске возможно, что кэш не загружен, поэтому вы не видите никаких выходных данных.

Ответ №1:

пока True, решите мою проблему

 import asyncio
import random

from discord.ext import commands

bot = commands.Bot(command_prefix='.')

a=['Hello','Hi','Hello World']


async def background_task():
    w = random.choice(a)
    q = "".join(w)
    message = q
    while True:
        time = 5 # 86400
        await asyncio.sleep(time)
        await bot.get_channel(771365589355855883).send(message)

async def on_ready():
    print('Bot logged as {}'.format(bot.user))


async def on_message(ctx):
    pass

bot.loop.create_task(background_task())
token = 'NzcxMzYwMzk4NzAzOTg0NjYx.X5q_Wg.w00I702euybW-Z2AYSQpHIsfifQ'
bot.run(token)
  

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

1. вы должны удалить свой токен из этого ответа