0
我正在Google App Engine上構建訂單系統。Google應用引擎ndb:禁止使用相同的ID
假設我有秩序的下列模式:
class Order(ndb.Model):
time: DateTimeProperty()
日期加序列號作爲一個字符串作爲一個實體的id:
today = str(datetime.datetime.now())[:10].replace('-','')
# Fetch today's orders
orders = Order.query(...).order(-Order.time).fetch(1)
if len(orders)==0: # No entities: today's first order
orderNum = today + '00001'
else:
orderNum = str(int(orders[0].key.id())+1)
order = Order(id=orderNum)
order.date = datetime.datetime.now()
order.put()
假設有多個職員並且他們可以同時執行該程序。一個顯而易見的問題是他們可能獲得相同的orderNum
並且實際寫入相同的實體。
我該如何防止這種情況發生?
太棒了!非常感謝。 – 2014-10-07 10:01:05