【发布时间】:2019-01-28 13:52:47
【问题描述】:
我正在尝试拨打外部Google Cloud Natural Language API
从Celery 任务中(使用google-cloud-python 包)。问题是对 API 的调用永远不会返回(挂起):
@celery.task()
def get_entities_async():
return get_entities()
def get_entities():
gcloud_client = LanguageServiceClient()
doc = types.Document(content='This is a test.', language='en', type='PLAIN_TEXT')
res = gcloud_client.analyze_entities(document=doc) # This call never returns
print('Call successful!') # (This never gets printed)
return res
我试图解决的问题:
- 从脚本调用方法
get_entities()。这很好用。 - 向 API 调用添加了
timeout=1和retry=False。它仍然挂起。 - 改为使用
requests模块调用API。这适用于 celery,因此问题必须在LanguageServiceClient内。
关于如何调试或解决此问题的任何想法?
【问题讨论】:
-
Celery 有一个调试器
rdb可以帮助您调查问题。
标签: python flask google-cloud-platform celery