2016-09-19 132 views
1

我創建了一個Java程序,每30分鐘從數據庫讀取信息,並將它們保存在結構中Vector<Vector<Object>>。 爲此,請使用ScheduledExecutorService如何通知Java程序數據庫的數據已更改

我創建了第二個Java程序,允許您從數據庫中添加/修改/刪除項目。我如何通知第一個程序在數據庫中發生了一些變化,然後在不等待30分鐘的情況下重新讀取新信息?

第一個程序總是處於活動狀態,而第二個程序僅在需要更改時才執行。

回答

1

如果您只能從第二個Java程序添加/修改/刪除項目,您可以調用第一個程序的方法。

要做到這一點,最簡單的方法是從第一個程序中公開一個Web服務,每次修改數據庫時都可以從第二個程序調用該服務。

但是,如果您也可以直接在數據庫上修改數據庫項目,則需要在數據庫上創建觸發器並直接從數據庫調用Web服務。請注意,第二種方法(直接在觸發事件上調用ws)是一種不好的做法。在這種情況下,您可以將兩個過程組合在一起:如果第二個Java程序發生修改,並直接在數據庫上進行修改,則直接調用ws。

+0

你的意思是在第一個程序上激活套接字服務以允許它們之間的通信? – JoeJoe

+1

如果第二個程序不是Web應用程序,則激活套接字,否則如果其他程序是Web應用程序,則直接公開Web服務。 –

+1

@JoeJoe,你應該「激活」任何手段,以允許program2與program1通信。它可以是套接字(如果它們之間的網絡訪問正常),寫入相互可訪問的文件,ping ...它取決於您的部署方案。 – bruno

相關問題