0

该解决方案由一个编排流程服务和多个负责对域实体进行 CRUD 操作的遗留应用程序组成。每次这些遗留应用程序执行更新、添加或删除语句时,实体所有者应用程序都会发送通知。在建模阶段,我们决定细粒度地映射实体。通过这种方式,每个 CRUD 操作都会产生数千个通知(最多 20k),从而导致暂时阻塞用户活动,因为实体持久性和通知发送结合在同一个事务中。当花费超过 120 秒时,这可能是不可接受的。

我想做的是将遗留应用程序中的用户活动与实体持久性和通知发送分开,将这些活动推迟到特定的应用程序服务(例如)。我知道最好的办法是将这些活动推迟到用户应用程序中的后台线程,但正如我所提到的,我使用的是非常旧的遗留应用程序。是否有任何 SOA 设计模式可以应用于此场景?

4

1 回答 1

1

你想要的是“解耦调用”。您接受请求并将其放入(持久)队列中,并向用户发送已收到请求的确认。视情况而定,您可以在消息完全处理后发送附加回复(例如通过电子邮件)。

在此处输入图像描述.

于 2012-12-19T09:42:08.673 回答