CreateBus()做什么[NServicebus]?

时间:2014-09-17 23:33:28

标签: nservicebus

我将此作为NServiceBus的初始化代码:

        Configure.Serialization.Json();
        Configure.Transactions.Disable(); // No idea why this is set...
        Configure.Features.Disable<AutoSubscribe>(); // This endpoint only sends commands, it never receives events, so it does not need to subscribe to anything.

        Configure
            .With(AllAssemblies.Except("evointernal.dll"))
            .StructureMapBuilder(ObjectFactory.Container)
            .ForMvc()
            .UseTransport<Msmq>()
            .PurgeOnStartup(true)
            .UnicastBus()
            .RunHandlersUnderIncomingPrincipal(false)
            .FileShareDataBus("c:\\NServiceBus_DataBus")
            .CreateBus();

        Configure
            .Instance
            .Configurer
            .ConfigureComponent<OutgoingMessageMutator>(DependencyLifecycle.InstancePerCall);

这很慢 - 每次重新编译开发时我都需要付几秒钟的税。看起来大部分的时间是由CreateBus()调用占用的,它引发了一些相关的问题:

  1. CreateBus()做什么?
  2. 为什么这么慢?
  3. 如果我不想在开发中运行它,那么它可以做什么的替代方法呢?
  4. 不幸的是,NSB docs对此没什么帮助。

1 个答案:

答案 0 :(得分:1)

Configure是一个流畅的API,用于定义如何配置总线。 CreateBus()实际上是踢它。看看this code,它也可以解释为什么需要时间。