bot-on-anything icon indicating copy to clipboard operation
bot-on-anything copied to clipboard

关于微信订阅号服务的一点优化建议

Open reBiocoder opened this issue 1 year ago • 4 comments

大佬,微信订阅号如果用的人多,werobot框架是无法支撑服务的,你的代码采用ThreadPoolExecutor通过多线程来处理I/O bound,同时使用人数超过百人时,也会阻塞。可以考虑采用asyncio重写

reBiocoder avatar Mar 08 '23 02:03 reBiocoder

好的,感谢建议

zhayujie avatar Mar 08 '23 02:03 zhayujie

开发是需要时间和成本的,个人建议作者挂个捐赠二维码,不会写代码的出点咖啡钱,能写代码的贡献一部分,大家一起发力,用爱发电的项目需要大家的支持,否则因为各种不可抗的原因导致项目中断的太多了。

beiwei360 avatar Mar 09 '23 03:03 beiwei360

大佬,微信订阅号如果用的人多,werobot框架是无法支撑服务的,你的代码采用ThreadPoolExecutor通过多线程来处理I/O bound,同时使用人数超过百人时,也会阻塞。可以考虑采用asyncio重写

@reBiocoder 想请问下werobot框架为什么无法支撑服务

zzyspace avatar Mar 09 '23 10:03 zzyspace

大佬,微信订阅号如果用的人多,werobot框架是无法支撑服务的,你的代码采用ThreadPoolExecutor通过多线程来处理I/O bound,同时使用人数超过百人时,也会阻塞。可以考虑采用asyncio重写

@reBiocoder 想请问下werobot框架为什么无法支撑服务

  1. 微信有消息重发机制,werobot框架用的wsgi是同步的,微信断开TCP,wsgi发送消息会报错,性能很差;
  2. openai的AI模型速度不稳定,HTTP请求是阻塞I/O,作者基于werobot用多线程来处理,并发量有限;
  3. 基于上述原因,会经常报错“微信公众号提供服务出现故障”,基本不可用; 不信你可以部署试试;

你可以看下我的解决方案:微信Bot封号,以及gpt-3.5-turbo接口国内被墙解决方案 用tornado框架+asyncio异步重写了werobot,体验了一周,性能很好100+人同时并发使用没有接口报错

reBiocoder avatar Mar 09 '23 10:03 reBiocoder