我有一个查询,对数据库进行了一些更改(更改了几个文档上的一些集合),然后生成了一个函数。
生成的函数看不到生成查询中所做的更改。
如果生成的函数自己生成,那么它会在第二次运行时看到更改(然后不再生成自己)。
我敢打赌,任务服务器会在 MVCC 机制为事务结束选择自己的时间戳之前立即选择生成的函数。
所以我得到了两个相关的问题:
1)如何确保生成的函数等待生成事务的结束?
2)是否可以生成一个函数,但只有在事务成功时才实际放入任务服务器队列(如果失败,则不将其放入任务服务器,从而导致一种回滚)?
我现在能想到的一个解决方案是使用提交后触发器,但这听起来有点令人费解,我希望在生成函数时有一个简单的选项可以做到这一点。