我正试图将一个异步函数传递到@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
将自动作为线程运行