我有一个Web应用程序,用户可以从数据库中查看他们创建的任务。
我想构建第二个调用数据库所有条目的应用程序,并检查该任务是否仍处于最新状态或已过期。我正在寻找一个解决方案,我的第二个应用程序可以强制我的第一个应用程序的所有会话重新加载他们的数据。
有没有办法调用可以影响所有正在运行的会话的方法?
public void callUpdate()
{
//get running Sessions of App1
//send update event
}
public void EventListener(updateEvent)
{
//reload data
}
或类似的东西?
此图片可能有助于理解问题:
我也在寻找带有Web服务和servlet的解决方案,但我找不到可以帮助解决我的问题的东西。或者我在搜索时没有使用正确的关键字。
答案 0 :(得分:0)
您可以使用松散耦合应用程序的JMS解决方案。 webApp1可以向队列发送消息(CheckForExpiredTasks),触发任务检查。 webApp2将侦听该消息,并在收到消息时执行查找过期任务的工作。如果出现您希望使正在运行的会话到期的方案,则webApp2会向队列发送“ExpireAllSessions”消息。 webApp1,在正确的队列中侦听,将收到此消息并使所有正在运行的会话到期。
使用JMS会很好,因为这两个应用程序是否已部署无关紧要。只要他们可以获取数据。 webApp2本身不需要是webApplication。只是一个使用EJB或Spring的轻量级服务应用程序。
希望这有帮助