0
    'TransactionOptions' object is not callable
Traceback (most recent call last):
  File "/base/python27_runtime/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 1511, in __call__
    rv = self.handle_exception(request, response, e)
  File "/base/python27_runtime/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 1505, in __call__
    rv = self.router.dispatch(request, response)
  File "/base/python27_runtime/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 1253, in default_dispatcher
    return route.handler_adapter(request, response)
  File "/base/python27_runtime/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 1077, in __call__
    return handler.dispatch()
  File "/base/python27_runtime/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 547, in dispatch
    return self.handle_exception(e, self.app.debug)
  File "/base/python27_runtime/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 545, in dispatch
    return method(*args, **kwargs)
  File "/base/data/home/apps/.../0-1.361943419475938372/cron.py", line 26, in get
    db.run_in_transaction(xg_on, transactional_task)
  File "/base/python27_runtime/python27_lib/versions/1/google/appengine/api/datastore.py", line 2433, in RunInTransaction
    return RunInTransactionOptions(None, function, *args, **kwargs)
  File "/base/python27_runtime/python27_lib/versions/1/google/appengine/api/datastore.py", line 2571, in RunInTransactionOptions
    ok, result = _DoOneTry(new_connection, function, args, kwargs)
  File "/base/python27_runtime/python27_lib/versions/1/google/appengine/api/datastore.py", line 2593, in _DoOneTry
    result = function(*args, **kwargs)
TypeError: 'TransactionOptions' object is not callable

我在 cron.py 中的代码如下所示:

def transactional_task():
    doStuff()
xg_on = db.create_transaction_options(xg=True)
db.run_in_transaction(xg_on, transactional_task)

直接从这里的文档中提取

知道为什么应用引擎认为无法创建 TransactionOptions 吗?我的数据存储是高复制。

4

1 回答 1

0

哪些文档?db.run_in_transaction() 采用函数的第一个参数。我认为您的意思是调用 run_in_transaction_options() ,它确实将 TransactionOptions 对象作为其第一个参数。

于 2012-09-23T00:16:07.940 回答