我有一个服务器,它有一个webhook和一个websocket服务。它们使用channelredis层相互发送消息,类似于在线聊天室示例,该示例使用频道名称,但不使用组(1到1(使用频道名称)
在我的使用中,我的websocket总是连接到服务器,而webhook是根据用户的需求发出的请求。
当用户发送webhook请求时,服务器将通过数据库找到相应的websocket频道名称。webhook服务随后将消息发送到websocket,websocket将找到webhook频道名称(来自所述数据库)并将消息发送回。最后,webhook服务将生成一个响应。这个webhook示例就会消失(它基于asynchttpconsumer)。
我发现的问题是,当它在heroku上时,我的redis连接有限(20个),它们会超时。每个使用我的服务的用户都有自己的redis连接,20秒后,我会收到一条错误消息(err max number of clients reached)。因为webhook请求响应只需要几秒钟,所以我不需要redis连接在默认的300秒内保持活动状态。但是如果我降低超时时间(比如说5秒),下一个webhook请求就会出错,因为现有的redis连接已经关闭。用户必须发送另一个webhook请求以建立新的redis连接。
我的webhook服务是否可以在webhook请求之后关闭redis连接?这样下一个webhook请求就不会出错,只会创建一个新的redis连接?
暂无答案!
目前还没有任何答案,快来回答吧!