我需要它的原因是将多个(添加、放置)事务组合成flatMap样式。现在,我想知道是否可以从上一个事务的不完全回调中插入一个新事务。它似乎在起作用,但我永远无法确定它在生产中起什么作用。例如,如果您从request回调中执行类似的操作,则它具有事务延续的特殊含义。
问题还可能是,transaction#oncomplete方法调用是事务完成的信号还是transaction#oncomplete返回时的信号?
我需要自己做一些负载测试,在简单的测试用例中,它可以工作,事务端看起来是transaction#oncomplete方法调用,但是如果我开始大量使用它,似乎有一些写锁启动让我思考这个问题。
发布于 2014-12-22 18:39:16
是。响应前一个事务的"complete"事件启动第二个事务是正确的,也是对排序进行推理的最简单方法。
规范(“提交事务的步骤”部分):
..。只有在事务成功写入之后,才会触发“完全”事件。
正如您注意到的,您可能从单个请求中看到"success"事件,但整个事务可能会中止(索引一致性、配额等),因此,如果需要对后续事务中的第一个事务的成功进行推理,等待"complete"是正确的做法。
https://stackoverflow.com/questions/27603385
复制相似问题