流星事务操作

9
我希望能在一个函数中更新3个meteor集合,但仅当所有三个更新成功时才更新,否则我想回滚。是否有一个好的模式来实现这个功能?
谢谢。

请查看collection.update。它有一个可选的回调函数。如果没有错误,您可以继续进行后续更新。 - Prashant
2
@Prashant 我不建议这样做,因为在第二个后续步骤中,如果节点突然崩溃或无法访问mongodb服务器,则第三个条目将无法放置。 - Tarang
这个崩溃可以处理吗?所以基本上使用状态值的方式是强制性的,对吧? - Prashant
1个回答

2

由于 Collection.insert 具有回调参数,因此您可以使用回调来完成事务。 - Swadq
使用回调函数是必要的,以便在客户端继续到下一步,而 Fibers 则在服务器端处理。如果不使用事务状态属性模式,则回调函数无法使其具有事务性。如果在任何阶段出现中断,例如错误,则会有一个条目进入而另一个条目不进入。如果在回调函数中使用错误检查,它仍然容易受到服务器崩溃/停电事件的影响。 - Tarang

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接