NServiceBus中IHandleMessages实例创建机制相关问题咨询
NServiceBus IHandleMessages 机制问题解答
1. IHandleMessages 实例创建规则
NServiceBus 默认会为每一次消息处理请求单独创建一个新的IHandleMessages实现类实例,单条消息处理完成后实例就会被回收,不会跨请求复用。
只有当你主动修改依赖注入容器中对应处理器的注册生命周期为单例时,才会出现实例复用的情况,该操作属于非常规调整,官方不推荐普通场景使用。
2. 消息处理器私有状态安全性
是否安全完全匹配你使用的实例生命周期配置:
- 保持默认的瞬时/作用域生命周期时,设置私有状态完全安全。每个消息处理流程对应独立实例,多线程处理不同消息不会出现状态串扰,完全可以通过私有字段存储当前处理流程的中间状态,优化代码整洁度。
- 若手动将处理器注册为单例生命周期,则禁止使用可变私有状态,并发处理消息时会触发线程安全问题,引发数据混乱或未知异常。
内容的提问来源于stack exchange,提问作者Lelax2
相关产品推荐
相关产品推荐

