如何跨不同节点持久化dialogData?

时间:2017-10-25 02:45:58

标签: node.js botframework

正如Microsoft Bot Framework的文档中所述,它们具有不同类型的数据。其中之一是dialogData,privateConversationData,conversationData和userData。

默认情况下,似乎userData应该准备好处理跨节点的持久性,但是dialogData应该用于临时数据。

正如其中所说:https://docs.microsoft.com/en-us/bot-framework/nodejs/bot-builder-nodejs-dialog-waterfall

  

如果机器人分布在多个计算节点上,则每一步都是如此   瀑布可以由不同的节点处理,因此它是   将机器人数据存储在适当的数据包中非常重要

所以,基本上,如果我有两个节点,我应该如何/为什么要使用dialogData,因为我不能保证它会跨节点保存?看来如果你有多个节点,你应该只使用userData。

1 个答案:

答案 0 :(得分:1)

我已经要求文档团队删除句子的最后一部分:“因此将机器人数据存储在适当的数据包中非常重要”。这是误导。 Bot Builder是安静和无国籍的。 dialogData,privateConversationData,conversationData和userData中的每一个都存储在State Service中:因此任何“计算节点”都能够从任何这些对象中检索数据。

请注意:默认的连接器状态服务仅用于原型设计,不应与生产机器人一起使用。请使用Azure Extensions或实现自定义状态客户端。

此博文可能也会有所帮助:Saving State data with BotBuilder-Azure in Node.js