该解决方案由编排流程服务和负责在域实体上进行CRUD操作的多个遗留应用程序组成。 每次这些遗留应用程序执行更新,添加或删除语句时,实体所有者应用程序都会发送通知。 在建模阶段,我们决定对实体进行细粒度映射。通过这种方式,每个CRUD操作可以上升数千个通知(最多20k),从而阻止用户活动一段时间,因为实体持久性和通知发送在同一事务中组合。当这需要超过120秒时,这是不可接受的。
我想要做的是将遗留应用程序中的用户活动与实体持久性和通知发送分开,将这些活动延迟到特定的应用程序服务(例如)。我知道最好将这些活动推迟到用户应用程序中的后台线程,但正如我所提到的,我正在使用非常古老的遗留应用程序。是否有可以应用于此方案的SOA设计模式?
答案 0 :(得分:1)
你想要的是“Decoupled invocation”。您接受请求并将其放入(持久)队列,并向用户发送已收到请求的确认。根据情况,您可以在邮件完全处理后发送其他回复(例如通过电子邮件)。
。