ruby-on-rails - Rails 4 中的 Redis 发布停止服务器线程

标签 ruby-on-rails ruby redis server-sent-events

对不起,英语不好,我是新手。

尝试使用带有rails 4和redis gem的redis.publish功能来通过SSE推送消息。

我的 Controller 中有这个 block

logger.info "test1"
$redis.publish "user", "test"
logger.info "test2"

其中 $redis -

$redis = Redis.new(:host => '127.0.0.1', :port => 6379, :db => 1,:timeout => 0)

在初始化程序中。

生产打印中的服务器控制台

I, [2013-08-07T22:34:50.138232 #4679]  INFO -- : test1

然后就什么也没有了。另一个请求正在运行,但该线程停止了。

顺便说一下,RAILS_ENV=生产 rails 控制台上的这个$redis.publish "user", "test"运行完美,消息成功显示在客户端。

你能帮我吗?

更新:Ruby 2.0-p247、Rails 4、Redis 3.0.4

最佳答案

不要在初始化程序中使用一个连接来订阅和发布两者。

我创建了 2 个连接,1 个用于在 sse writer 中订阅,1 个在 Controller 中用于发布,一切正常。

关于ruby-on-rails - Rails 4 中的 Redis 发布停止服务器线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18111487/

相关文章:

ruby-on-rails - Ruby on Rails Windows 开发现在被认为是安全的吗?

ruby-on-rails - 如何从 hstore 列中获取二维散列作为输出?

javascript - 将逻辑放入 Ruby on Rails 应用程序中 : calculate a value for a field when creating a new row of the database

ruby - Ruby 中的 HTTPS URL 服务器证书

asp.net - Web.config转换不适用于SessionState或OutputCache元素

python - python中的Redis BLPOP超时

ruby-on-rails - Active Record 辅助方法 - 使用模块与继承

ruby-on-rails - 部署后设计丢失 session

ruby - Ruby 中的 JSON 解析

Redis 键空间通知 - 获取集合操作的值(小尺寸)