2014-10-18 46 views
1

据我所知,包括Rebus在内的总线的常见行为是为每个到达和匹配的消息创建一个新的处理程序。这在大多数情况下都很好,但有时候会有昂贵的初始化处理程序(需要实例化服务代理,连接,缓存中的加载对象等)。有一种方法可以在第一次创建这些处理程序时缓存这些处理程序,理想情况下,每个工作人员只有一个实例,以避免一次又一次创建它们?昂贵的初始化/创建Rebus和处理程序

回答

1

如果你有一些需要很长时间来初始化的东西,我建议你使用你的IoC容器来注入它,根据你的需要调整生活方式 - 通过Castle Windsor,我通常将昂贵的服务配置为单身人士,如果他们可重入或绑定到当前线程(如果它们不是)(这将最终为每个Rebus工作线程创建一个实例)。

您的选择可能会有所不同,具体取决于您使用的是哪个IoC容器,但所有容器都应该能够执行此操作。