首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NDB微线程在appstats中不可见

NDB微线程在appstats中不可见
EN

Stack Overflow用户
提问于 2013-01-11 17:59:38
回答 1查看 165关注 0票数 4

为什么用@ndb.tasklet修饰的方法中的行号在appstats中不存在

在我们的应用程序中,我们有一个约定,既包括同步版本的函数,也包括异步版本的函数,类似于:

代码语言:javascript
复制
def do_something(self, param=None):
    return self.do_something_async(param=param).get_result()

@ndb.tasklet
def do_something_async(self, param=None):
    stuff = yield self.do_something_else_async(stuff=param)
    # ...
    raise ndb.Return(stuff)

…但是,即使在将appegnine_config.appstats_MAX_STACK设置为很大的值并清空appengine_config.appstats_RE_STACK_SKIP之后,在第一次调用some_tasklet.get_result()时,appstats中的报告仍然会留下我的应用程序代码。

这里有一个来自appstats的例子:

learn.get_list_of_cards_to_learn()中的扩展堆栈帧只返回self.get_list_of_cards_to_learn_async().get_result(),这是一个微线程,它反过来调用一系列其他微线程。然而,这些微线程在appstats中都不可见,我所看到的只有ndb内部。

其中一些请求会导致大量的RPC调用,但我不确定如何确定应用程序的哪个部分发出了这些请求,因为我无法通过appstats中的第一个tasklet来跟踪它。

是否需要在appengine_config中进行一些微调

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-14 00:42:06

这与NDB的调度程序管理微线程的方式有关。对此你无能为力。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14275660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档