【问题标题】:Is it safe to use images.get_serving_url_async() inside a ndb tasklet?在 ndb tasklet 中使用 images.get_serving_url_async() 是否安全?
【发布时间】:2013-02-12 16:51:27
【问题描述】:

NDB tasklet 和yield 是执行异步/并行代码的好方法。但是,从文档中并不清楚这种机制是否可以安全地用于非 ndb 异步函数,例如 images.get_serving_url_async()

NDB Asynchronous Operation documentation page 有一个关于使用 NDB 上下文自己的 urlfetch_async() 版本的非常小的部分,其中声明(强调我的):

URL Fetch 服务有自己的异步请求 API。 这很好,但与 NDB 小任务一起使用并不总是那么容易

我不太清楚为什么它“并不总是很容易与 NDB 小任务一起使用”,这让我想知道同样的说法是否适用于 images.get_serving_url_async()

所以我的问题是:如果我这样做会遇到麻烦吗?

@ndb.tasklet
def foo():
    url = yield images.get_serving_url_async(image_key)

【问题讨论】:

标签: google-app-engine app-engine-ndb


【解决方案1】:

没关系。 yield 将等待 RPC 并允许其他 tasklet 在等待时运行。关于 urlfetch 的评论只是关于它笨拙的 API。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-09
    • 2010-12-29
    • 1970-01-01
    • 2012-02-22
    • 2016-05-12
    相关资源
    最近更新 更多