我想找到在NServiceBus 5.x设计一个传奇由2个或更多的消息启动的帮助。这意味着传奇不会从一条消息开始,但所有消息都必须在传奇开始前出现。如何设计一个NServiceBus传奇开始收到多条消息
我不太明白这是如何工作的,并且没有任何样品或例子可以在任何地方找到。
我读了几本书,清楚地表明通过几条消息开始传奇是完美的。
我没有得到的是当你需要时,如何找到传奇。 3条消息来启动传奇。所有3条消息必须以任何顺序到达,然后才能“开始”。 这是如何影响我对[Unique]
属性的选择?
例子:我需要的传奇是“独一无二”的三个ID“STOREID”立法院认定,“ComputerID”,“用户名”。这三个ID将到达三个不同的命令,Message1
,Message2
,Message3
。
public class MySaga : Saga<MySagaData>,
IAmStartedByMessages<Message1>,
IAmStartedByMessages<Message2>,
IAmStartedByMessages<Message3>
{ ...
}
MySagaData应该在三个属性上有[Unique]属性吗?
public class MySagaData
{
[Unique]
public int StoreId {get;set;}
[Unique]
public int ComputerId {get;set;}
[Unique]
public int UserId {get;set;}
}
或者我必须创建只读属性连接这三个?
当Message1
和Message3
到达时,传奇无法启动。 Message2
已丢失。
然后另一个Message1
到达。
然后Message2
到达。 (完成第一个传奇,所以它可以开始)
第二个Message1
呢?
这将如何处理?
就我所知,没有什么特别的内容可以支持这一点。 *任何*邮件到达时,您的传奇必须开始。然后,您可以对其他消息作出反应,以建立“完整”数据集,确定消息是相关的,等等。 –
您使用哪种数据持久性? –
@ColinPear Nhibernate – John