首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何登录nservicebus saga是否已经启动?

如何登录nservicebus saga是否已经启动?
EN

Stack Overflow用户
提问于 2013-08-05 08:31:46
回答 1查看 279关注 0票数 0

我有个故事:

代码语言:javascript
运行
复制
public class MySaga : Saga<MySagaEntity>,
  IAmStartedByMessages<Message1>,
  IAmStartedByMessages<Message2> {

}

一般来说,我需要从日志中很容易地看到哪些消息开始于哪个传奇。

我需要的是记录如下:

接收消息Message1与.它启动了一个新的传奇接收消息Message2与..。为了Id=的传奇故事..。

作为替代方案,我有以下方法: 1.检查日志文件是否启动,如果没有启动,2.检查saga的相关性是否为空(因为它将在启动saga的处理程序中填充)

代码语言:javascript
运行
复制
 if (Data.CorrelationId == default_value)
      _log.DebugFormat("message starts saga CorrelationId={0}", message.CorrelationId)

有谁知道更好的方法吗?

EN

回答 1

Stack Overflow用户

发布于 2013-08-05 13:00:56

如果已经创建了一个saga,或者已经加载了一个现有的实例,那么NServiceBus中目前没有一种方法可以得到通知。(我打开了一个github 问题供进一步讨论)

这就是说,如果该传奇是由给定的消息创建的,这意味着您最好在您的saga数据上设置一个布尔标志来显式地记录这一点。

代码语言:javascript
运行
复制
if(Data.SagaWasStartedByAOnlineCustomer)
    Bus.Send(new VerifySomethingForOnlineCustomersCommand);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18053738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档