2013-05-11 58 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

相关问题