Advertisement

前端技术三:redux-saga将异步转化为同步

阅读量:

1.什么是Saga?

实际上,这一概念源自康奈尔大学发表的一篇研究文献:http://www.cs.cornell.edu/andru/cs711/2002fa/reading/sagas.pdf

最初,这篇论文旨在应对分布式系统中LLT(Long Lived Transaction)所引发的数据一致性难题。或许这样的表述略显抽象,我们不妨通过一个具体场景来理解:

设想你正在使用一个在线订票平台预订机票,当订单成功生成后,系统通常会给予你30分钟的时间完成支付。若在规定时间内完成付款,则系统将正式出票;反之,若超时未支付,则订单将被取消。这意味着从下单到最终出票之间可能需要长达30分钟的时间,这正是所谓的LLT。熟悉数据库操作的读者应该了解,“事务(Transaction)”指的是一个不可分割的操作单元,要么全部执行成功,要么全部回滚。那么问题来了:为了确保数据的一致性,是否需要等待上述LLT完全执行完毕?显然这是不现实的,因为这将导致在这30分钟内其他用户无法进行订票操作。因此,在1987年,康奈尔大学的两位学者发表了一篇论文,并提出了一种全新的概念——saga:

Let us use the term saga to refer to a LLT that can be broken up into a collection of sub-tra

全部评论 (0)

还没有任何评论哟~