有关 Telegram Bot API Webhook 并发的问题

本来想写个博客bb这事,最后发现是自己错了))))我还一本正经的去问 Bot Support,好尴尬,想换个星球生活了

这么尴尬本来想删了的,但是感觉怪可惜的,还是发出来吧

流水账警告

这几天写 Bot,发现在上一个指令没处理完的时候使用其他指令会没有反应。

最开始还以为是因为开发用的 Web server 不支持并发的问题,随后发现投入生产的 Bot 也有这个问题。

webhook.site 测试发现 Bot API 的 Webhook 并不能同时进行多个请求,即当上一个 Webhook 的 HTTP 请求尚未给出响应时,后续的其他 Update 会队列等待,而不是直接发起请求,看起来可能还是个 feature 的样子。

本来想着做成不等待处理完成先返回就完事了的,但是无奈在响应中调用 API这个 feature 太香了,于是还是问问看志愿者有没有什么解决方案。

是我寄了,在不同会话中是可以并发回调的,只是在同一个 chat 里上一个 webhook 没处理完后续同 chat 的回调会队列,盲猜是 Bot API 直接透传了 tdlib update 导致的(也许。

最后决定自己做一个中间件,收到 webhook 直接给 Bot API 返回204,然后自己做异步回调,处理队列这样。最后发现还能顺手实现分流、负载均衡、镜像请求、灾备切换,感觉还不错。哪天心情好可以开源试试,虽然估计也没人用
感觉还不错

相关文章

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注