1

我有一个可以处理多个消息的传奇,如下所示:

 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?

4

0 回答 0