2016-09-20 66 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文件中, 當然)。

相關問題