2016-09-20 38 views
1

我需要将Ruby on Rails应用程序与第三方应用程序集成,该应用程序将共享普通的PostgreSQL数据库。也就是说,Rails应用程序和第三方应用程序都将使用相同的PG数据库。如何监听由第三方应用程序触发的数据库更改

是否可以在Rails应用程序中设置侦听器,以便在第三方应用程序添加,编辑或删除数据库记录时触发事件?

例如,假设我有一个在Rails中定义的Book模型,并且第三方应用程序在数据库的Book表中添加了一个新行(不是通过BooksController)。

Rails应用程序能检测到新记录已被添加,或者现有记录已被编辑/删除吗?

回答

1

这是我最后做的:使用Whenever,因为它与Capistrano很好地集成,并向我展示了如何从cron内部运行Rails代码。我失踪的和平基本上是

script/runner -e production'ChangeObserver.recentchanges' 现在每5分钟运行一次。最近的变化从tmp文件中读取最后一次查看的ID,将所有具有更高ID的新Change记录拉出,并为每个记录运行正常观察者代码(并将最高查看ID保存到tmp文件中, 当然)。

相关问题