我有一个 saga-service ProcessCatalog 负责产品目录发布过程。
客户端应用程序向其发送 PublishCatalog 消息;每条消息都包含 catalogid 和项目列表。
我选择 catalogid 作为 SagaId。
ProcessCatalog 服务是一个长期运行的业务流程,它以适当的顺序排列其他业务服务。
我需要 ProcessCatalog 记住当前目录项的组成来推动发布过程。
如果同一个用户第一次点击 UI 按钮发送 PublishCatalog(catalogId=1, Itemlist={A,B,C} ) 然后更改目录组成 (itemList ={A,D,E}) 会发生什么在 UI 按钮上再次单击以发送相同 CatalogId 的另一个 PublishCatalog ?
如果我的 ProcessCatalog 端点配置了一个工作线程,那么一切正常(我认为)。但是如果工作线程大于 1 并且 2 条消息同时处理会发生什么?如果第二个线程在第一个线程之前完成执行会发生什么?
我问我这是业务设计错误还是正常的技术问题。