ruby-on-rails - 使用 Redis pub/sub 创建太多线程

标签 ruby-on-rails redis publish-subscribe

我有一个 Rails 前端服务器,它接收来自用户的多个请求,然后将这些请求发送到后端服务器。

后端服务器异步处理请求,并在完成每个请求后通知前端服务器。

我使用 Redis pub/sub 在这两个服务器之间进行通信。特别是,对于来自用户的每个请求,我都会创建一个新的 Redis 实例来订阅单个 channel (例如,scoring_channel)。

但是,如果我有 100 个用户同时发出请求,则每个 Redis 订阅者将持有一个线程。

这会影响我的服务器性能吗?如果我对最大线程数有限制(例如,Heroku 允许最多 256 个线程),我应该如何避免这个问题?

最佳答案

这不会影响服务器性能,因为 redis 从未被 pub/sub 阻塞。 您应该在客户端使用非阻塞 API 而不是阻塞版本以减少线程数。

关于ruby-on-rails - 使用 Redis pub/sub 创建太多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21978564/

相关文章:

ruby-on-rails - 如何动态设置模型的表名?

sql - 在 SQL DB 中查询列中的特定字符串

php - Redis如何组合排序集?

database - 在 Redis 中存储和读取通知的最佳方法(Json 或多数据结构)?

c++ - 回调中未更新的变量

redis - 在 Pub/Sub (Redis) 中查找源发布者

ruby-on-rails - Rails 嵌套属性未更新

ruby-on-rails - 多态关系 vs STI vs 具有 RoR 的类表继承

amazon-web-services - 如何访问 AWS ElastiCache 上的 Redis 日志

publish-subscribe - PubNub 到服务器的数据传输