Google App Engine上でdb.run_in_transactionを使う時、一つのGroupでしかトランザクションを実行できないらしい。
複数グループを同時にトランザクションしたい場合は、cross-group (XG) transactionsというので実現するしかないようだ。
で、そのやり方だが、下のようにプログラムを組めば処理できるみたい。
xg_on = db.create_transaction_options(xg=True) try: db.run_in_transaction_options(xg_on, func, args) except:キモは、xg_on = db.create_transaction_options()でxg=Trueをした上で、db.run_in_transaction_options()メソッドを使っているところ。
確かに、上のように組んだらできた。これ便利なので、今後も使っていこぉーっと。
参考URL
Cross Group (XG) Transactions and Further Explanation of use
Google App Engine:run_in_transaction_options (options, function, *args, **kwargs)
0 コメント:
コメントを投稿