方法返回时,Google App Engine deferred.defer()失败

Wil*_*ran 3 python google-app-engine exception task

我正在尝试使用google.appengine.ext.deferred来运行任务.我将一个方法传递给defer()方法,该方法成功运行,但返回时,抛出一个ValueError:

  File ".../admin.py", line 73, in post
    result = deferred.defer(meeple_tasks.buildGames())
      File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/deferred/deferred.py", line 198, in _curry_callable
        raise ValueError("obj must be callable")
    ValueError: obj must be callable
Run Code Online (Sandbox Code Playgroud)

这是我称之为延迟的地方:

result = deferred.defer(meeple_tasks.buildGames())   
Run Code Online (Sandbox Code Playgroud)

buildGames()将在完成时返回True.

bdo*_*lan 10

你应该使用:

result = deferred.defer(meeple_tasks.buildGames)
Run Code Online (Sandbox Code Playgroud)

如果你使用buildGames(),那么在那里调用函数,将返回值传递给defer().通过删除括号,您可以将函数本身传递给defer.