擅长:python、mysql、java
<p>我认为如果你能对一种商品的订单排序,那么你就可以离线清除订单。所谓“下线”,我的意思是你可以在一天结束时来找我,告诉我订单的顺序,我可以告诉你发生了哪些交易。一个障碍是,如果买家没有资金,而交易本应结清怎么办?您可以通过两种方式解决此问题:</p>
<ol>
<li>把资金交给第三方保管,这样任何可以结清的订单都可以。你知道吗</li>
<li>如果资金不可用,当你试图结清订单时,就放弃购买订单。你知道吗</li>
</ol>
<p>正如您所建议的,您可能需要跨实体的集团交易,以确保资金转移是正确的(即既不创建也不销毁资金)。你知道吗</p>
<p>您可以按时间排序订单(例如,paced\u at=db.DateTimeProperty属性(auto\u now\u add=True))。如果两个订单有相同的时间,那么使用一些东西(最好是公平和确定的东西)来打破僵局。在这里,数字id的散列(为了公平)(为了决定论)可能不是一个坏的选择。你知道吗</p>
<p>appengine本质上是多线程的,因为一个App可以有许多并发实例(但实例不一定是同一进程中的线程)。实例是自动创建的,目前无法将实例数限制为1。如果应用程序的状态是在数据存储中(而不是本地内存、memecache或其他地方),并且事务是正确的,那么应用程序将是“免费”多线程的。当然,你的交易是正确的不是微不足道的。你知道吗</p>
<p>另一个要记住的工具是任务可以是事务性的。如果您想使用任务进行脱机图书清除,这可能很有用。你知道吗</p>