1

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

4

1 回答 1

1

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

您的选项可能会因您使用的 IoC 容器而异,但所有容器都应该能够做到这一点。

于 2014-10-18T18:36:16.087 回答