EnkanRec / TwitKit

面向推文翻译工作的开源套件,基于微服务架构设计。
14 stars 0 forks source link

推送多条有引用的推文时,最后一条推送失败 #5

Closed y2361547758 closed 4 years ago

y2361547758 commented 4 years ago

maid推送到app的watcher时,或使用fetch功能时,若入库了多条有引用关系的推文,那么最后一条推文不会被app推送到群

相关代码:watcher.ts#L104, cmd.ts#L281

y2361547758 commented 4 years ago

经测试,上一行的tids2msgs输出正确,若去掉for中的await也能成功输出所有推送。问题仍在探讨中,问题陷入僵局.jpg

k9yyy commented 4 years ago

初步分析看是Koishi的bug

https://github.com/koishijs/koishi/blob/acaffacdf3c61aae02c0b4e9495e1a48917651b9/packages/koishi-core/src/server.ts#L346

收到response时,这行执行不到,所以L286的promise永远解决不了,导致卡住了。

k9yyy commented 4 years ago

另外之前观察有误,应该是除第一条外都会推送失败(因为一调用send就肯定走不下去)

k9yyy commented 4 years ago

上游已修复