Google App脚本聊天机器人中的状态管理(PropertiesService)问题

时间:2020-05-01 19:59:53

标签: javascript google-apps-script concurrency hangouts-chat

我有一个使用Google App脚本实现的Google Hangouts聊天机器人。如预期的那样,它基本上接收到一条消息,对其进行处理并做出响应。我使用PropertiesService保留给定用户的机器人状态。在处理消息之前,脚本会读取先前的存储状态,使用它来处理消息,更新状态,存储状态然后返回。

search

除了上面的代码(Code.gs),我还有一个额外的脚本,该脚本使用简单的onMessage函数定义Robot类,该onMessage函数处理输入并创建输出-测试版,我可以简单地重现问题在原始消息中添加文本,然后将结果发送回去。基本设置遵循quickstart

它在大多数时间都有效,但是有时在处理一条消息时,恢复的状态不是上一条消息保存的状态。我添加了日志以确认准确的时间属性已被读取并保存,并且根据日志,在读取以下消息的状态之前,始终会保存消息的状态。

我认为日志可能隐藏了实际的持久性事务,然后我添加了代码来锁定脚本-假设存在并发问题。但这没有用。归根结底,如果PropertiesService是异步的,那么我认为该锁定将无法正常工作。

任何可能发生的事情的想法?

0 个答案:

没有答案