檢查數據庫值我有,我在數據庫檢查特定的值每隔10秒左右的情況。而且,如果值爲YES,那麼我會從Java應用程序執行一堆shell腳本。現在替代在while循環
,在數據庫中的值取決於用戶在網頁上提交的工作只是更新爲是曾經在一段時間。因此,運行一個while循環來檢查數據庫中該值似乎是一個非常糟糕的設計,我想實現使用聽衆更清潔的方法(Observer設計模式)。
如何將這種實現是什麼樣子?我可以遵循的任何示例來做到這一點?
檢查數據庫值我有,我在數據庫檢查特定的值每隔10秒左右的情況。而且,如果值爲YES,那麼我會從Java應用程序執行一堆shell腳本。現在替代在while循環
,在數據庫中的值取決於用戶在網頁上提交的工作只是更新爲是曾經在一段時間。因此,運行一個while循環來檢查數據庫中該值似乎是一個非常糟糕的設計,我想實現使用聽衆更清潔的方法(Observer設計模式)。
如何將這種實現是什麼樣子?我可以遵循的任何示例來做到這一點?
是的,有更好的工作。所以在mysql中有一些名爲binlog reader的東西。那就是在mysql集羣數據庫中如何完成主從同步。
因此,無論你寫你自己的邏輯在https://github.com/shyiko/mysql-binlog-connector-java它可以獲取上表中的所有CHANE事件
或使用https://github.com/zendesk/maxwell來讀取特定的表和whenver事件中值的任何變化,有檢查,如果它的條件匹配和EXCUTE腳本或java應用程序的基礎上,而不是將其作爲cron運行。
的總體思路是使用DB triggers,從Java端註冊DB監聽器,並從DB側通知當一些事件已經發生。
Pls review proposed solutions How to implement a db listener in Java