为什么我的 Discord 机器人在 Heroku 上无法正常工作?

问题描述

也许我可以在社区中找到我的问题的答案。 我运行了一个稍微复杂一些的音乐机器人,今天在新服务器上进行了设置。

问题@H_404_4@

我已经在这个机器人上使用 Heroku 有一段时间了,到目前为止还没有出现任何问题。然后我今天尝试再次设置所有内容,因为我的托管时间已过期,启动它也工作正常。但现在如下:

我在 requirements.txt 文件中进行了以下更改:

discord.py == 1.6.0 youtube_dl == 2021.1.16

加上这些设置,机器人甚至无法坚持 2 分钟并正确播放音乐。我总是只收到以下错误消息:

Shard ID 0 heartbeat blocked for more than 10 seconds.

我向 discord.py 服务器报告,但在版本 1.6.0 上没有引入导致此错误的此类更改。所以我认为问题出在 youtube_dl 版本上。所以我一直在尝试,设置 discord.py == 1.5.1youtube_dl == 2021.1.8,但 Heroku 似乎再次停止工作,现在我收到以下错误代码

WARNING] discord.gateway: Shard ID 0 has stopped responding to the gateway. Closing and restarting.

机器人停止响应,启动时间过长,我必须手动重新启动它。有趣的是:我还有一个机器人,它只在一台服务器上运行,也通过 Heroku 运行,当机器人仍在 Heroku 上运行时,即使使用我的旧“设置”,也会出现错误

我得到的最新和最长的错误:@H_404_4@

2021-01-24T00:21:34.861555+00:00 app[worker.1]: [2021-01-24 00:21:34] [WARNING] discord.gateway: Shard ID 0 heartbeat blocked for more than 30 seconds.
2021-01-24T00:21:34.861568+00:00 app[worker.1]: Loop thread traceback (most recent call last):
2021-01-24T00:21:34.861568+00:00 app[worker.1]:   File "launcher.py",line 55,in <module>
2021-01-24T00:21:34.861568+00:00 app[worker.1]:     main()
2021-01-24T00:21:34.861569+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/click/core.py",line 1025,in __call__
2021-01-24T00:21:34.861569+00:00 app[worker.1]:     return self.main(*args,**kwargs)
2021-01-24T00:21:34.861569+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/click/core.py",line 955,in main
2021-01-24T00:21:34.861570+00:00 app[worker.1]:     rv = self.invoke(ctx)
2021-01-24T00:21:34.861570+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/click/core.py",line 1496,in invoke
2021-01-24T00:21:34.861571+00:00 app[worker.1]:     super().invoke(ctx)
2021-01-24T00:21:34.861571+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/click/core.py",line 1279,in invoke
2021-01-24T00:21:34.861571+00:00 app[worker.1]:     return ctx.invoke(self.callback,**ctx.params)
2021-01-24T00:21:34.861571+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/click/core.py",line 710,in invoke
2021-01-24T00:21:34.861572+00:00 app[worker.1]:     return callback(*args,**kwargs)
2021-01-24T00:21:34.861572+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/click/decorators.py",line 18,in new_func
2021-01-24T00:21:34.861572+00:00 app[worker.1]:     return f(get_current_context(),*args,**kwargs)
2021-01-24T00:21:34.861573+00:00 app[worker.1]:   File "launcher.py",line 51,in main
2021-01-24T00:21:34.861573+00:00 app[worker.1]:     run_bot()
2021-01-24T00:21:34.861573+00:00 app[worker.1]:   File "launcher.py",line 42,in run_bot
2021-01-24T00:21:34.861573+00:00 app[worker.1]:     bot.run()
2021-01-24T00:21:34.861573+00:00 app[worker.1]:   File "/app/bot.py",line 144,in run
2021-01-24T00:21:34.861574+00:00 app[worker.1]:     super().run(parser.get('disCORD','token'),reconnect=True)
2021-01-24T00:21:34.861574+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/discord/client.py",line 698,in run
2021-01-24T00:21:34.861574+00:00 app[worker.1]:     loop.run_forever()
2021-01-24T00:21:34.861574+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.7/asyncio/base_events.py",line 541,in run_forever
2021-01-24T00:21:34.861575+00:00 app[worker.1]:     self._run_once()
2021-01-24T00:21:34.861575+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.7/asyncio/base_events.py",line 1786,in _run_once
2021-01-24T00:21:34.861575+00:00 app[worker.1]:     handle._run()
2021-01-24T00:21:34.861575+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.7/asyncio/events.py",line 88,in _run
2021-01-24T00:21:34.861575+00:00 app[worker.1]:     self._context.run(self._callback,*self._args)
2021-01-24T00:21:34.861576+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/discord/shard.py",line 151,in worker
2021-01-24T00:21:34.861576+00:00 app[worker.1]:     await self.ws.poll_event()
2021-01-24T00:21:34.861576+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/discord/gateway.py",line 564,in poll_event
2021-01-24T00:21:34.861576+00:00 app[worker.1]:     await self.received_message(msg.data)
2021-01-24T00:21:34.861576+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/discord/gateway.py",line 427,in received_message
2021-01-24T00:21:34.861577+00:00 app[worker.1]:     msg = self._zlib.decompress(self._buffer)
2021-01-24T00:21:34.861577+00:00 app[worker.1]: 
2021-01-24T00:21:39.861332+00:00 app[worker.1]: [2021-01-24 00:21:39] [WARNING] discord.gateway: Shard ID None voice heartbeat blocked for more than 20 seconds
2021-01-24T00:21:39.861369+00:00 app[worker.1]: Loop thread traceback (most recent call last):
2021-01-24T00:21:39.861370+00:00 app[worker.1]:   File "launcher.py",in <module>
2021-01-24T00:21:39.861371+00:00 app[worker.1]:     main()
2021-01-24T00:21:39.861371+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/click/core.py",in __call__
2021-01-24T00:21:39.861372+00:00 app[worker.1]:     return self.main(*args,**kwargs)
2021-01-24T00:21:39.861372+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/click/core.py",in main
2021-01-24T00:21:39.861372+00:00 app[worker.1]:     rv = self.invoke(ctx)
2021-01-24T00:21:39.861373+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/click/core.py",in invoke
2021-01-24T00:21:39.861373+00:00 app[worker.1]:     super().invoke(ctx)
2021-01-24T00:21:39.861373+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/click/core.py",in invoke
2021-01-24T00:21:39.861374+00:00 app[worker.1]:     return ctx.invoke(self.callback,**ctx.params)
2021-01-24T00:21:39.861374+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/click/core.py",in invoke
2021-01-24T00:21:39.861375+00:00 app[worker.1]:     return callback(*args,**kwargs)
2021-01-24T00:21:39.861375+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/click/decorators.py",in new_func
2021-01-24T00:21:39.861375+00:00 app[worker.1]:     return f(get_current_context(),**kwargs)
2021-01-24T00:21:39.861376+00:00 app[worker.1]:   File "launcher.py",in main
2021-01-24T00:21:39.861376+00:00 app[worker.1]:     run_bot()
2021-01-24T00:21:39.861376+00:00 app[worker.1]:   File "launcher.py",in run_bot
2021-01-24T00:21:39.861376+00:00 app[worker.1]:     bot.run()
2021-01-24T00:21:39.861376+00:00 app[worker.1]:   File "/app/bot.py",in run
2021-01-24T00:21:39.861377+00:00 app[worker.1]:     super().run(parser.get('disCORD',reconnect=True)
2021-01-24T00:21:39.861377+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/discord/client.py",in run
2021-01-24T00:21:39.861377+00:00 app[worker.1]:     loop.run_forever()
2021-01-24T00:21:39.861377+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.7/asyncio/base_events.py",in run_forever
2021-01-24T00:21:39.861378+00:00 app[worker.1]:     self._run_once()
2021-01-24T00:21:39.861378+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.7/asyncio/base_events.py",in _run_once
2021-01-24T00:21:39.861378+00:00 app[worker.1]:     handle._run()
2021-01-24T00:21:39.861379+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.7/asyncio/events.py",in _run
2021-01-24T00:21:39.861379+00:00 app[worker.1]:     self._context.run(self._callback,*self._args)
2021-01-24T00:21:39.861379+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/discord/shard.py",in worker
2021-01-24T00:21:39.861379+00:00 app[worker.1]:     await self.ws.poll_event()
2021-01-24T00:21:39.861379+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/discord/gateway.py",in poll_event
2021-01-24T00:21:39.861380+00:00 app[worker.1]:     await self.received_message(msg.data)
2021-01-24T00:21:39.861380+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/discord/gateway.py",in received_message
2021-01-24T00:21:39.861380+00:00 app[worker.1]:     msg = self._zlib.decompress(self._buffer)
2021-01-24T00:21:39.861380+00:00 app[worker.1]:

对于 Python buildpack,我已经安装了以下东西:

https://github.com/xrisk/heroku-opus

https://github.com/jonathanong/heroku-buildpack-ffmpeg-latest

错误可能是由于这些 buildpacks 造成的,尽管它以前总是有效吗?我现在不知道,因为当然一切都在本地进行。此外,从我的 requirements.txt 文件升级到更新的模块或版本总是会导致 Heroku 出现问题或无法启动机器人。

有没有推荐的与 Heroku 一起使用的 Python 版本?目前我使用 runtime.txt 定义版本 3.7.9

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)