我们正在跨多个服务器部署聊天机器人。如果用户发送 2 条消息到达不同的服务器,我想确保这些消息按顺序处理,并且一次处理一条。在 V3 中,我能够实现自定义 IScope类来支持此行为,由 Redis 和 RedLock.net 支持。这在 V4 中如何工作?
最佳答案
dotnet Bot Builder SDK V4 不提供内部启用悲观锁定或确保按顺序处理消息的机制。但是,您很可能可以在 V4 机器人的 OnTurn 中利用 Redis 租赁实现。
我们确实在此处提供了横向扩展示例:42. Scale Out但是,它使用了 ETag 乐观锁定策略,不能保证消息处理顺序。
另一种选择可能是将服务总线与 Queue Based Load Leveling 一起使用。机器人面前的策略。
关于botframework - 如何确保多个 Bot Builder V4 机器人实例一次处理一条用户消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53832138/