擅长:python、mysql、java
<p>正如另一个答案中提到的,可以在主线程继续运行时使用单独的线程来轮询操作。或者,您可以将返回操作的<code>operation.name</code>传递给一个单独的服务,并让另一个服务句柄轮询。例如,在实践中,调用长时间运行操作的服务可以将<code>operation.name</code>发布到发布/订阅主题。在</p>
<p>下面是通过按名称查找长时间运行的操作来检索该操作的可能方法:</p>
<pre><code>from oauth2client.client import GoogleCredentials
from googleapiclient import discovery
credentials = GoogleCredentials.get_application_default()
speech_service = discovery.build('speech', 'v1', credentials=credentials)
operation_name = .... # operation.name
get_operation_request = speech_service.operations().get(name=operation_name)
# response is a dictionary
response = get_operation_response.execute()
# handle polling
retry_count = 100
while retry_count > 0 and not response.get('done', False):
retry_count -= 1
time.sleep(60)
response = get_operation_response.execute()
</code></pre>
<p>操作完成后,<code>response</code>dict可能如下所示:</p>
^{pr2}$