将异步函数(更改通道名称)传递到线程中



我正试图将一个异步函数传递到@tasks.loop线程中,因为如果不使用线程,我的命令只有在任务完成后才能工作。然而,我试图每5分钟做一次的任务是更改频道名称,但它不起作用。我收到一个Timeout context manager should be used错误。


async def change_name()
channel = client.get_channel(chid)
await chid.edit(name='yes')
@tasks.loop(minutes=5)
async def loop():
_thread = threading.Thread(target=asyncio.run,args=())
_thread.start()
loop.start()

您可以为它(链接(尝试python-worker

from worker import async_worker
@async_worker
async def change_name()
channel = client.get_channel(chid)
await chid.edit(name='yes')
@tasks.loop(minutes=5)
async def loop():
await change_name()
loop.start()

您的change_name将自动作为线程运行