final DocumentReference deleteRef = db.collection("ABC").document("XYZ");
db.runTransaction(new Transaction.Function<Void>() {
@Override
public Void apply(Transaction transaction) throws FirebaseFirestoreException {
DocumentSnapshot documentSnapshot = transaction.get(deleteRef);
if(documentSnapshot.exists())
{
transaction.delete(deleteRef);
Log.d("MyActivity", "inside documentSnapshot.exists()");
Log.d("MyActivity",deleteRef.getPath());
}
return null;
}
}).addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
// implement logic
Log.d("MyActivity","onSuccess");
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.d("MyActivity","onFailure");
Log.e("MyActivity", "transaction failure", e);
}
});
2019-10-21 20:28:45.134 158 66-16240/someapp d/myactivity:documentsnapshot.exists()
2019-10-21 20:28:45.134 158 66-16240/someapp d/myactivity:abc/xyz
2019-10-21 20:28:45.488 158 66-15866/someapp d/myactivity:onSuccess
2019-10-21 20:28:47.900 302 93-30293/someapp d/myactivity:onFailure
请帮我理解这一点。
只有第一个客户端实际上在删除文档。第二个客户机将看到一个不存在的文档。
您可能还想知道云Firestore中的删除不会产生错误。此外,获取文档也不会为不存在的文档生成错误。
所以实际上,使用您所显示的代码,第二个客户机将看到documentsnapshot.exists()
返回false,并且事务中不会发生任何事情,因为exists()
也不会生成任何错误。
我在使用时遇到了一些问题。运行命令
我正试着把我的头绕在Kafka的交易上,而且只绕了一次。 我已经创建了一个事务性消费者,我想确保阅读和处理某个主题的所有消息。如果事务失败,消息因此丢失,Kafka仍会提交偏移量。 更正式地说,如果流处理应用程序使用消息A并生成消息B,使得B=F(A),那么恰好一次处理意味着当且仅当成功生成B时才认为A被消耗,反之亦然。来源 基于此,我假设消息A没有被消费,因此将再次被重新处理。但这条信息将如何重
我正在运行一个Spring boot 2.4.3应用程序,我有一个支持事务的mongob 4集群(我使用run-rs在本地运行它)。我也在使用Spring data mongob。我正在尝试为db迁移集成mongock(最新版本-4.3.8),但我面临一个问题,我无法解决。正如我们所知,最新版本的mongock默认使用事务。我有以下更改集,它只是为我的一个实体创建了一个mongob集合。 运行应用
我列出了一个问题“Spring事务失败回滚”。我有一个服务类,它调用2 DAO将数据插入到数据库表中。 我的事务配置: 我的服务和dao定义如下:
下面的代码我得到当我使用异步.当我使用同步时,它成功了。 链接失败,但在异步和同步情况下都成功。 出什么事了?这是在Python3.4中实现的。2在FreeBSD8上,aiohttp 0.14。4,请求2.5。3. 此操作的输出为: