我正在尋找關於監控特定表格的建議,該表格每天可以獲得大約250,000個插頁。雖然不是很大,但它正在迅速增長,我們無法像現在這樣繼續工作。RoR觀察頻繁更新的表格中的更改
主要應用程序依賴RoR4與MySQL數據庫。數據從多個radius服務器直接流入數據庫。
我們需要監控的特定列於一個特定的值,然後進行簡單的查找:
if column == xxx
venue = Venue.find_by(bar: foo)
if venue.is_monitored?
do some other shizzle
end
end
的位置表是一個平凡的大小也不,所以我不想看每次發生事情時都會通過數十萬行。
有人可以幫助推薦一種快速有效的方法來做到這一點?目前檢查每個插入在Rails中看起來很荒謬。我們也嘗試每隔60秒在後臺處理這項工作,但似乎過時了。
到目前爲止,最好的解決方案是觀察插入的值,將其發佈到Redis並使用節點服務器來監聽事件。然後推回到Rails。
對不起,如果這是主觀或偏離觀點,我真的很想有人教我一個美味的方式來做到這一點。
我很快看了一下觸發器,並不確定他們是否比在Rails中運行cron更好。提取數據不是'實時',但我猜sys_exec方法可能工作。我將不得不調查Ruby腳本開銷。例如,每秒運行一次耙將會終止服務器。 – simonmorley
編輯我的回答 – Benj
在Redis中,我們使用了很多pub sub,並且仍然必須檢查表以防萬一錯過。你的想法聽起來不太複雜。在作出決定之前,必須閱讀觸發器。一直在尋找分析數據的起伏的數據日誌。非常喜歡這兩個概念...... – simonmorley