0

我有一个 Web 应用程序,用户可以在其中从数据库中查看他们创建的任务。

我想构建第二个应用程序来调用数据库的所有条目并检查任务是否仍然是最新的或过期的。我正在寻找一种解决方案,我的第二个应用程序可以强制我的第一个应用程序的所有会话重新加载它们的数据。

有没有办法调用可以影响所有正在运行的会话的方法?

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

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

或类似的东西?

此图像可能有助于理解问题:

在此处输入图像描述

我还寻找了具有 Web 服务和 servlet 的解决方案,但我没有找到可以帮助我解决问题的方法。或者我在搜索时没有使用正确的关键字。

4

1 回答 1

0

您可以使用松散耦合应用程序的 JMS 解决方案。webApp1 可以向触发任务检查的队列发送消息 (CheckForExpiredTasks)。webApp2 将侦听该消息,并在收到时执行查找过期任务的工作。如果出现要使正在运行的会话过期的情况,webApp2 会向队列发送“ExpireAllSessions”消息。webApp1,在正确的队列上监听,会收到这个消息并终止它所有正在运行的会话。

使用 JMS 会很好,因为这两个应用程序是否已部署并不重要。只要他们能拿到数据。webApp2 本身不需要是 webApplication。只是一个使用 EJB 或 Spring 的轻量级服务应用程序。

希望这可以帮助

于 2013-05-11T21:41:33.837 回答