大量接收消息时bot端很卡 #612
Unanswered
balaboooot
asked this question in
问答
Replies: 2 comments
-
|
越来越慢通常是不正常的,基本可以肯定是插件导致的,其他 bot 持续运行很久都不会有这个问题。 异步不代表不阻塞,如果你在异步函数里执行了计算密集代码,仍然会阻塞。包括你说的 匹配检查,如果在 rule 里执行了计算密集同样会阻塞。 你也可以考虑用一些 profiler 来记录 timeline 信息,例如 viztracer、py-spy 等等。 |
Beta Was this translation helpful? Give feedback.
0 replies
-
|
感谢解答,我再检查一下,有新的发现我再请教您 |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
bot配置:
Windows 10 企业版 LTSC 22H2
E3 1265L V3
16G内存
1T 固态
bot使用情况:
nonebot2 2.4.1搭配llonebot,经观察后llonebot收发正常
两个qq共用一个bot
问题如下:
bot端启动后最开始正常,在每秒钟接收2-5条消息的情况下(不是待处理的指令,单纯接收到的所有的群消息),慢慢的nonebot控制台滚动的消息越来越卡,可能隔几秒钟才更新一次,然后别人发的查询指令过很久才反应过来显示[INFO] nonebot | Event will be handled by Matcher(type='message', module=src.plugins.xxxxxx, lineno=9),然后又过一段时间才开始运行相应的功能程序,然后再过一段时间才发送出去,然后处理完毕的时间间隔越来越长,最后导致十几分钟前查询的指令现在才处理完。
已经检查过的方法:
1.关闭一部分插件后正常,但是减少接受的消息也会正常,比如屏蔽部分群聊。
2.采用二分法逐步排除可能有问题的插件,未能成功,所有的能用异步函数都用的异步,能用aiohttp的都用的aiohttp
3.开始以为priority设置的过多,后面全部改为priority=1,经过查看log发现在bot检查匹配priority可能存在阻塞的情况?
目前排查问题毫无头绪了,希望能帮忙指出可能出现问题的地方
(因部分群聊和消息涉及到隐私,恕无法展示全部的信息,需要的话可私下提供详细的log)
以及我发现的匹配priority可能存在阻塞的情况:

Beta Was this translation helpful? Give feedback.
All reactions