PostgreSQL 通知和带有 Rails 的 WebSockets

Posted

技术标签:

【中文标题】PostgreSQL 通知和带有 Rails 的 WebSockets【英文标题】:PostgreSQL notifications and WebSockets with Rails 【发布时间】:2013-03-20 15:05:30 【问题描述】:

是否有任何 Ruby/Rails 库用于通过 WebSockets 发送 PostgreSQL asynchronous notifications?

我需要通知浏览器客户端特定数据库表中的更新。我知道这可以通过 pub/sub API 来完成,但我正在寻找一个仅限 Postgres 的解决方案。

我为此找到了Python tutorial,但找不到用于 Ruby 的。我需要实现它以供生产使用,因此生产就绪的库和教程将是最好的。

【问题讨论】:

我为这个场景写了一个 Rails3-Plugin。遗憾的是它是封闭源代码(它是有偿工作),但您可以很容易地自己实现它。有一个用于 websockets 的 EventMachine 插件,您可以使用 Model.execute() 来监听/通知。您唯一需要记住的是 MRI 不是多线程的(寻找 GIL),所以我使用 jruby 而不是 MRI 作为 websockets 服务器。 【参考方案1】:

我不直接知道任何与 websockets 一起使用的东西,但是 queue_classic gem 在 postgres 中使用侦听/通知来进行消息队列。这是开始了解如何完成的好方法。

【讨论】:

以上是关于PostgreSQL 通知和带有 Rails 的 WebSockets的主要内容,如果未能解决你的问题,请参考以下文章

rails3、postgresql 和 postGIS:在迁移中冻结

在 Rails 和 PostgreSQL 中完全忽略时区

Rails 和 PostgreSQL 的问题

使用 PostgreSQL 的模式和 Rails 创建多租户应用程序

带表达式的多列索引(PostgreSQL 和 Rails)

Rails 在应用程序 ubuntu 中与 Postgresql 数据库连接