Google App Engine :( Python)数据存储区事务和幂等性

时间:2013-03-04 23:27:11

标签: python google-app-engine transactions

我想帮助理解交易和无能为力。

  

注意:如果您的应用在提交交易时收到异常,   它并不总是意味着交易失败。你可以收到   案例中的超时,TransactionFailedError或InternalError异常   事务已经提交并最终将被应用   成功。尽可能进行数据存储区事务处理   幂等因此,如果您重复一个事务,最终结果将是   同样的。

我有一个游戏,玩家会在发生特殊情况时收到电子邮件。玩家有时会收到2封(或更多)电子邮件。我相信它是因为我在交易中处理游戏规则,但在外面发送电子邮件。

一些伪代码:

def game_update(orders_from_player):
  emails_to_send = db.run_in_transaction(process_player_orders, orders_from_player)
  for e in emails_to_send:
    send_email(e)

是否可以说,在发生交易冲突时我应该再次发送电子邮件列表?

重复整个请求,或者只是调用事务过程。(在本例中为process_player_orders)

我很困惑。

0 个答案:

没有答案