据我所知,包括Rebus在内的总线的通常行为是为每个到达和匹配的消息创建一个新的处理程序。在大多数情况下这很好,但有时会有昂贵的初始化处理程序(需要实例化服务代理,连接,缓存上的加载对象等)。有一种方法可以在第一次创建这些处理程序后对其进行缓存,理想情况是每个工作程序一个实例,以避免一次又一次地创建它们吗?
答案 0 :(得分:1)
如果你有一些需要很长时间才能初始化的东西,我建议你使用你的IoC容器来注入它,根据你的需要调整生活方式 - 使用Castle Windsor,我通常会将昂贵的服务配置成单身人士,如果他们这样做的话。如果不是(可能最终为每个Rebus工作线程创建一个实例),则可重入或绑定到当前线程。
您的选择可能会因您使用的IoC容器而异,但所有容器都应该能够执行此操作。