我有一个可以处理多个消息的传奇,如下所示:
public class OrderSaga : ISaga<Order>
, InitiatedBy<StartOrderSaga>
, Orchestrates<CancelOrder>
, Orchestrates<PaymentForOrderReceived>
, Orchestrates<CheckOrderWasPaid>
, Orchestrates<OrderAbandoned>
, Orchestrates<CheckOrderHasBeenShipped>
, Orchestrates<OrderShipped>
, Orchestrates<CheckOrderHasDelayDuringShipment>
, Orchestrates<OrderArrivedAtDestination>
, Orchestrates<OrderCompleted>
{...}
但似乎只有 Orchestrates<CancelOrder> 被选中。所以我想(我没有找到这条线,但我有一个强烈的印象是这样),只有第一个 Orchestrates 被注册。
可能这是设计使然。从我想象的传奇故事来看,它接收许多不同的信息似乎是合乎逻辑的,但我可能错了。我的整个假设也可能错了:)
我该怎么处理这个?Sagas 是否应该只处理一个(在我的情况下) ChangeStateMessage<State> 还是应该手动连接其他 ConsumerOfs/Orchestrate?