我正在使用Firebase编写财务应用程序,为了提交收据,还需要更新许多其他对象。为了使数据有效,需要成功完成所有数据更新。如果其中一次写入出现错误,则必须回滚所有更新。例如:如果用户提交收据,则必须更新收据对象以及发票对象和其他总帐对象。如果更新开始但用户在中途断开互联网连接,则应回滚所有更改。在Firebase中实现此目标的最佳方法是什么? 最佳答案 首先,让我们聊一聊为什么有人可能想要在多个数据路径上进行提交/回滚...你需要这个吗?通常,如果出现以下情况,则不需要此信息:您没有以高并发写入(不同用户每分钟对同一记录进行数百次
我有一个方法“databaseChanges”,它以迭代方式调用2个操作:A、B。“A”在前,“B”在后。“A”和“B”可以C创建、U更新D我的持久存储Oracle数据库11g中的元素功能。比方说,'A'更新表Users中的一条记录,属性zip,其中id=1。'B'在表hobbies中插入一条记录。场景:databaseChanges方法被调用,'A'操作并更新记录。'B'操作并尝试插入一条记录,发生了一些事情,抛出异常,异常冒泡到databaseChanges方法。预期:“A”和“B”没有任何改变。“A”所做的更新将被回滚。'B'没有改变任何东西,好吧......有一个异常(exce
我一直在使用JMS和ActiveMQ。一切都在创造奇迹。我没有使用spring,我也不会。javax.jms.MessageListener接口(interface)只有一个方法,onMessage。在实现中,有可能会抛出异常。如果实际上抛出了异常,那么我说消息没有得到正确处理,需要重试。所以,我需要ActiveMQ稍等片刻,然后重试。即我需要抛出的异常来回滚JMS事务。我怎样才能完成这样的行为?也许在ActiveMQ中有一些我找不到的配置。或者...也许可以取消向消费者注册MessageListener并自己使用消息,循环如下:while(true){//...someadminis
根据JAVAdocumentation,Connection#commit()可以抛出SQLException。我的问题是在这种情况下是否仍应发出回滚。例如:Connectioncon=null;try{//assumethismethodreturnsanopenedconnectionwithsetAutoCommit(false)con=createConnection();//doDBstuffcon.commit();}catch(SQLExceptione){if(con!=null){//whatifcon.commit()failed,isthisstillnecess
我正在使用无状态EJB类来更新位于数据库中的持久性实体。EJB中的方法调用完成工作的实现类。我认为导致问题的原因是名为Foo的实体与实体Bar具有一对多关系。事情已经完成,session更新为Foo,它“级联”到Bar。当StaleObjectStateException发生时,事务没有完全回滚,这会导致错误,原因很明显。EJB:privateSessiongetSession()throwsBusinessException{if(this.sess==null){ServiceLocatorlocator=newServiceLocator();SessionFactorysf=l
我将Django1.7.7与python2.7.6和Postgres一起用作数据库,并且我遇到了TransactionTestCase问题。在我的迁移中,我有两个datamigrations,我希望它们在测试期间可用,所以我将serialized_rollback=True添加到我的测试用例(https://docs.djangoproject.com/en/1.7/topics/testing/overview/#test-case-serialized-rollback)。测试用例的第一个测试没问题,但随后django提示IntegrityError:IntegrityError:
我对curses很陌生,所以我正在python中尝试一些不同的东西。我已经初始化了窗口并为窗口对象设置了scrollok。我可以添加字符串,并且滚动有效,因此addstr()在窗口末尾没有任何错误。我想要的是在程序完成后在我的终端程序(在本例中为tmux或KDEKonsole)中回滚程序输出的能力。在我的代码中,如果我跳过endwin()调用,我至少可以看到输出,但是终端需要reset调用才能恢复运行。此外,即使程序正在运行,在curses窗口向下滚动后,我也无法在Konsole中向后滚动以查看初始输出。#!/usr/bin/envpython2importcursesimportti
我正在使用py.test来测试我的Flask应用程序,但我收到了IntegrityError,因为我在两个不同的测试中创建了相同的模型。我正在使用postgreSQL9.3.5和Flask-SQLAlchemy1.0。编辑我已经用JeremyAllen的回答更新了我的sessoinfixture,它修复了很多错误。但是,当我使用用户fixture时,似乎仍然会出现IntegrityErrors错误EIntegrityError:(IntegrityError)duplicatekeyvalueviolatesuniqueconstraint"ix_users_email"EDETAIL
我的SQLAlchemy应用程序(在MariaDB上运行)包括两个模型MyModelA和MyModelB,其中后者是前者的子记录:classMyModelA(db.Model):a_id=db.Column(db.Integer,nullable=False,primary_key=True)my_field1=db.Column(db.String(1024),nullable=True)classMyModelB(db.Model):b_id=db.Column(db.Integer,nullable=False,primary_key=True)a_id=db.Column(db
K8SDeployments使用&更新&回滚&扩容K8SDeployments提供比ReplicationController、ReplicaSet更高一级的抽象,也具备更丰富的功能。Deployment对象不仅创建pod,还确保集群中始终运行正确数量的pod,处理可伸缩性,并持续处理pod的更新。所有这些活动都可以通过部署YAML中的字段进行配置。下面接下来就开始K8SDeployment的学习之旅吧。Deployment应用场景以下是K8SDeployment典型的应用场景创建Deployment展示ReplicaSet-ReplicaSet在后台自动创建Pod,所以Deployment也