1

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

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

4

2 回答 2

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());
    }
于 2017-11-02T12:04:05.560 回答
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

于 2017-11-02T11:10:04.433 回答