任务已销毁,但仍挂起!-Python不协调Bot错误

任务已销毁,但仍挂起!-Python不协调Bot错误,python,bots,discord,Python,Bots,Discord,我对Python比较陌生,正在尝试为Discord开发一个机器人。我可以让机器人工作,但我有一些新的命令,我在我的麻烦 我创建了一个名为“Member_City_Count”的函数,它使用urllib.requests解析来自站点的json,并将数据存储在一个文件中。我知道它自己可以工作,但是当调用bot来运行它时,在函数完成运行并且bot关闭后,我会收到以下错误: (Task was destroyed but it is pending! task: Task pending coro=&

我对Python比较陌生,正在尝试为Discord开发一个机器人。我可以让机器人工作,但我有一些新的命令,我在我的麻烦

我创建了一个名为“Member_City_Count”的函数,它使用urllib.requests解析来自站点的json,并将数据存储在一个文件中。我知道它自己可以工作,但是当调用bot来运行它时,在函数完成运行并且bot关闭后,我会收到以下错误:

(Task was destroyed but it is pending! task: 
Task pending coro=<_run_event()running at C:\Users\dom\AppData\Local\Programs\Python\
Python35-32\lib\site_packages\discord\client.py:307>wait_for=Future pending 
cb=[Task._wakeup(), BaseSelectorEventLoop._sock_connect_done(964)()]>)

如果问题非常明显,仍在努力解决asyncio问题,则表示歉意。

discord api需要每N秒ping一次服务器(N约为60)

如果这种情况没有发生,您将在某个时候得到一个异常(我相信在下一个discordapi调用时)

如果您的工作流中有一个长时间运行的函数,这将阻止ping并导致客户端进入错误状态

请记住,Python在CPU密集型任务中本质上是“单核”的

这与asyncio有关,但更多的是与discord的特定使用模式有关

您可以将沉重的阻塞处理卸载到另一个进程中;或者将其拆分为许多小型异步函数

以下是一些模糊相关的信息:
discord api需要每N秒ping一次服务器(N约为60)

如果这种情况没有发生,您将在某个时候得到一个异常(我相信在下一个discordapi调用时)

如果您的工作流中有一个长时间运行的函数,这将阻止ping并导致客户端进入错误状态

请记住,Python在CPU密集型任务中本质上是“单核”的

这与asyncio有关,但更多的是与discord的特定使用模式有关

您可以将沉重的阻塞处理卸载到另一个进程中;或者将其拆分为许多小型异步函数

以下是一些模糊相关的信息:

我认为这是一个时间问题,但我不知道为什么我解决这个问题的努力都没有奏效。我相信这是因为keepalive线程被阻止ping(由于某个地方有一个长时间运行的回调)。我相信这是一个时间问题,但我不知道为什么我解决它的所有尝试都不起作用。我相信这是因为keepalive线程被阻止ping(由于某个地方有一个长时间运行的回调)。
async def on_message(message):
   if message.content.startswith(!Cities):
       await client.send_message(message.channel, "Collecting Data ...")
       Member_City_Count()
       await client.send_message(message.channel, "Complete")