小编Bin*_*yon的帖子

是否保证在应用程序请求完成后执行ndb async?

我正在使用ndb编写一个分析模型,该模型记录每个应用程序请求的一些数据.每个请求都通过ndb.put_async调用ndb请求来记录数据,而客户端不关心结果.本质上,我不希望应用程序请求等待保存统计数据以进行性能分析.

但是,我对官方文档中的解释感到困惑.如果在ndb请求完成之前应用程序请求已完成,那么是否仍能保证ndb请求完成?文件表明

如果请求处理程序过早存在,那么put可能永远不会发生

这会发生什么标准?这是否意味着无论用户是否关心结果,都需要调用future.get_result,以确保执行ndb请求?

原始文档(https://developers.google.com/appengine/docs/python/ndb/async)说:

在这个例子中,调用future.get_result有点傻:应用程序从不使用NDB的结果.该代码就在那里,以确保请求处理程序在NDB完成之前不会退出; 如果请求处理程序过早退出,则put可能永远不会发生.为方便起见,您可以使用@ ndb.toplevel修饰请求处理程序.这告诉处理程序在异步请求完成之前不要退出.这反过来让您发送请求,而不用担心结果.

google-app-engine

8
推荐指数
1
解决办法
673
查看次数

标签 统计

google-app-engine ×1