处理Google NLP API中的50倍错误

时间:2017-11-01 13:10:34

标签: java google-cloud-platform google-cloud-nl

按照Google Sentiment Analysis Java API中的示例,我有一个应用程序发送几百个文本样本以供分析服务。 API时不时地显着减慢,并且当与API控制台上的时间线相关时,它与500和504错误相关。

是否有推荐的模式来处理这种错误?我在API中找不到超时参数,能够在5秒后取消请求,然后重试。我是否必须将API调用包装到Future中?

2 个答案:

答案 0 :(得分:1)

以下是我正在寻找的确切API。

文档:

一段代码:

    LanguageServiceClient createLanguage() throws IOException {
      RetrySettings retrySettings = RetrySettings.newBuilder()
            .setTotalTimeout(Duration.of(60, ChronoUnit.SECONDS))
            .setMaxAttempts(2)
            // Some other options
            .build();
      LanguageServiceSettings.Builder sb = 
            LanguageServiceSettings.newBuilder();
      sb.annotateTextSettings().setRetrySettings(retrySettings);
      return LanguageServiceClient.create(sb.build());
    }

答案 1 :(得分:0)

截断指数退避可能有助于您处理此类错误。

这是来自谷歌云平台的两个链接,第一个解释了你想要使用它的情况,第二个给你一些例子。

https://cloud.google.com/apis/design/errors#error_retries https://cloud.google.com/storage/docs/exponential-backoff

如果这不能解决您的问题,您可以检查您的api请求是否达到了配额。在这种情况下,您可以申请增加配额。

NLP API的配额是每分钟600个请求(60秒):https://console.cloud.google.com/apis/api/language.googleapis.com/quotas

或每100秒1000次请求,似乎或多或少相同: https://cloud.google.com/natural-language/quotas#requests