ndb.toplevel for python 方法与请求处理程序

ndb.toplevel for python method versus request handler

Google App Engine 文档指出 "As a convenience, you can decorate the request handler with @ndb.toplevel."

@ndb.toplevel 可以与非请求的 python 方法一起使用吗 处理程序?

我有一个调用 ndb.put_multi_async() 的 python 方法 mymethod(),并且在单元测试中调用了 mymethod()。在继续之前,我想调用 mymethod() 来完成 put_multi_async() 。为了达到那种效果,我可以用@ndb.toplevel装饰mymethod()吗?这样做似乎可以确保 put_multi_async() 在 mymethod() returns 之前完成,但我想仔细检查一下是否没有任何意外的副作用。

是的,必须研究 toplevel 来自的整个 tasklets 模块 source,以确认(据我所知,除了在模块自己的文档字符串),但是这样做之后,我看不到使用 toplevel 装饰不是处理程序的方法会产生任何副作用。