2013-05-11 35 views
0

我有一個Web應用程序,用戶可以從數據庫中看到他們創建的任務。從同一服務器上的其他應用程序調用方法

我想構建第二個應用程序,調用數據庫的所有條目並檢查任務是否仍然是最新或過期的。我正在尋找一個解決方案,我的第二個應用程序可以強制我的第一個應用程序的所有會話重新加載其數據。

有沒有辦法調用一個可以影響所有正在運行的會話的方法?

public void callUpdate() 
{ 
//get running Sessions of App1  
//send update event 
} 

public void EventListener(updateEvent) 
{ 
//reload data 
} 

或類似的東西?

該圖像可能有助於理解這個問題:

enter image description here

我也看了已經爲與Web服務和servlet解決方案,但我沒有找到的東西,可以幫助我與我的問題。或者我在搜索時沒有使用正確的關鍵字。

回答

0

您可以使用鬆散耦合應用程序的JMS解決方案。 webApp1可以發送一條消息(CheckForExpiredTasks)到一個觸發任務檢查的隊列。 webApp2會監聽該消息,並在收到時執行查找過期任務的工作。如果出現想要使運行會話過期的場景,則webApp2會將「ExpireAllSessions」消息發送到隊列。在正確的Queue上監聽的webApp1會收到此消息並將其所有正在運行的會話過期。

使用JMS會很好,因爲這兩個應用程序是否部署無關緊要。只要他們能夠獲取數據。 webApp2本身不需要成爲web應用程序。只是使用EJB或Spring的輕型服務應用程序。

希望這會有所幫助

+0

非常感謝JMS提示。它就像你說的一個很好的解決方案^^。 – Shibas 2013-05-14 15:10:37

相關問題