【发布时间】:2017-04-29 13:58:22
【问题描述】:
我对 Python 比较陌生,并且正在为 Discord 开发一个机器人。我可以让机器人工作,但我输入的几个新命令遇到了问题。
我创建了一个名为“Member_City_Count”的函数,它使用 urllib.requests 解析来自站点的 json 并将数据存储在文件中。我知道它可以自己运行,但是当调用机器人运行它时,在函数完成运行并且机器人关闭后我收到以下错误:
(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)()]>)
最让我困惑的是,大约四分之一的尝试运行它会成功!
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")
抱歉,如果问题非常明显,仍在尝试处理 asyncio。
【问题讨论】:
-
我相信这是一个时间问题,但我不知道为什么我没有尝试解决它。我相信这是因为一个保活线程被阻止ping(由于某处长时间运行的回调)。