Python 3.x 异步discord bot中的时间不一致

Python 3.x 异步discord bot中的时间不一致,python-3.x,python-asyncio,discord.py-rewrite,Python 3.x,Python Asyncio,Discord.py Rewrite,我试图让一个不和谐的机器人每30分钟发送一条消息,我能想出的唯一解决方案变得非常奇怪,它将开始以看似随机的间隔发送消息,并同时发送多条消息 以下是受影响的代码: @client.event async def on_ready(): await test() async def test(): print("running test") channel = client.get_channel(PLACEHOLDER) awai

我试图让一个不和谐的机器人每30分钟发送一条消息,我能想出的唯一解决方案变得非常奇怪,它将开始以看似随机的间隔发送消息,并同时发送多条消息

以下是受影响的代码:

@client.event
async def on_ready():
    await test()

async def test():       
    print("running test")
    channel = client.get_channel(PLACEHOLDER)
    await channel.send("i like " +words)
    print(words)
    await asyncio.sleep(1800)
    await test()
                 
我曾尝试用time.sleep替换asyncio.sleep,但这会导致bot超时,并从\u ready和自身运行test()函数,导致它发送消息两次,我将在一致的基础上对其进行验证。我和几个朋友已经搞乱了一段时间,无法修复它。

您可以使用:

来自discord.ext导入任务
@客户端事件
_ready()上的异步定义:
打印(“机器人准备就绪”)
等待测试。开始()
@task.loop(分钟=30)
异步定义测试():
打印(“30分钟过去了”)
您可以使用:

来自discord.ext导入任务
@客户端事件
_ready()上的异步定义:
打印(“机器人准备就绪”)
等待测试。开始()
@task.loop(分钟=30)
异步定义测试():
打印(“30分钟过去了”)

导入错误:无法从“discord.ext”(未知位置)导入名称“task”
我完全不知道为什么会这样说,我可以导入
discord.ext导入命令
很好。编辑:1。导入任务不是任务。2.我必须将
task=discord.ext.tasks
放入运行中。我必须将
test.start()
添加到on_ready中。但是现在可以用了,谢谢<代码>导入错误:无法从“discord.ext”(未知位置)导入名称“task”我完全不知道为什么会这样说,我可以导入
discord.ext导入命令
很好。编辑:1。导入任务不是任务。2.我必须将
task=discord.ext.tasks
放入运行中。我必须将
test.start()
添加到on_ready中。但是现在可以用了,谢谢!