Search in sources :

Example 1 with TimedRetryAlgorithm

use of com.google.api.gax.retrying.TimedRetryAlgorithm in project java-translate by googleapis.

the class BatchTranslateDocument method batchTranslateDocument.

// Batch translate document
public static void batchTranslateDocument(String projectId, String sourceLanguage, String targetLanguage, String inputUri, String outputUri, int timeout) throws IOException, ExecutionException, InterruptedException, TimeoutException {
    // refer to https://github.com/googleapis/java-translate/issues/613
    TranslationServiceSettings.Builder translationServiceSettingsBuilder = TranslationServiceSettings.newBuilder();
    TimedRetryAlgorithm timedRetryAlgorithm = OperationTimedPollAlgorithm.create(RetrySettings.newBuilder().setTotalTimeout(Duration.ofSeconds(1000)).build());
    translationServiceSettingsBuilder.batchTranslateDocumentOperationSettings().setPollingAlgorithm(timedRetryAlgorithm);
    TranslationServiceSettings translationServiceSettings = translationServiceSettingsBuilder.build();
    // up any remaining background resources.
    try (TranslationServiceClient client = TranslationServiceClient.create(translationServiceSettings)) {
        // The ``global`` location is not supported for batch translation
        LocationName parent = LocationName.of(projectId, "us-central1");
        // Google Cloud Storage location for the source input. This can be a single file
        // (for example, ``gs://translation-test/input.docx``) or a wildcard
        // (for example, ``gs://translation-test/*``).
        // Supported file types: https://cloud.google.com/translate/docs/supported-formats
        GcsSource gcsSource = GcsSource.newBuilder().setInputUri(inputUri).build();
        BatchDocumentInputConfig batchDocumentInputConfig = BatchDocumentInputConfig.newBuilder().setGcsSource(gcsSource).build();
        GcsDestination gcsDestination = GcsDestination.newBuilder().setOutputUriPrefix(outputUri).build();
        BatchDocumentOutputConfig batchDocumentOutputConfig = BatchDocumentOutputConfig.newBuilder().setGcsDestination(gcsDestination).build();
        BatchTranslateDocumentRequest request = BatchTranslateDocumentRequest.newBuilder().setParent(parent.toString()).setSourceLanguageCode(sourceLanguage).addTargetLanguageCodes(targetLanguage).addInputConfigs(batchDocumentInputConfig).setOutputConfig(batchDocumentOutputConfig).build();
        OperationFuture<BatchTranslateDocumentResponse, BatchTranslateDocumentMetadata> future = client.batchTranslateDocumentAsync(request);
        System.out.println("Waiting for operation to complete...");
        // random number between timeout
        long randomNumber = ThreadLocalRandom.current().nextInt(timeout, timeout + 100);
        BatchTranslateDocumentResponse response = future.get(randomNumber, TimeUnit.SECONDS);
        System.out.println("Total Pages: " + response.getTotalPages());
    }
}
Also used : TimedRetryAlgorithm(com.google.api.gax.retrying.TimedRetryAlgorithm) TranslationServiceClient(com.google.cloud.translate.v3beta1.TranslationServiceClient) GcsSource(com.google.cloud.translate.v3beta1.GcsSource) BatchTranslateDocumentMetadata(com.google.cloud.translate.v3beta1.BatchTranslateDocumentMetadata) BatchDocumentInputConfig(com.google.cloud.translate.v3beta1.BatchDocumentInputConfig) BatchDocumentOutputConfig(com.google.cloud.translate.v3beta1.BatchDocumentOutputConfig) LocationName(com.google.cloud.translate.v3beta1.LocationName) BatchTranslateDocumentRequest(com.google.cloud.translate.v3beta1.BatchTranslateDocumentRequest) TranslationServiceSettings(com.google.cloud.translate.v3beta1.TranslationServiceSettings) BatchTranslateDocumentResponse(com.google.cloud.translate.v3beta1.BatchTranslateDocumentResponse) GcsDestination(com.google.cloud.translate.v3beta1.GcsDestination)

Aggregations

TimedRetryAlgorithm (com.google.api.gax.retrying.TimedRetryAlgorithm)1 BatchDocumentInputConfig (com.google.cloud.translate.v3beta1.BatchDocumentInputConfig)1 BatchDocumentOutputConfig (com.google.cloud.translate.v3beta1.BatchDocumentOutputConfig)1 BatchTranslateDocumentMetadata (com.google.cloud.translate.v3beta1.BatchTranslateDocumentMetadata)1 BatchTranslateDocumentRequest (com.google.cloud.translate.v3beta1.BatchTranslateDocumentRequest)1 BatchTranslateDocumentResponse (com.google.cloud.translate.v3beta1.BatchTranslateDocumentResponse)1 GcsDestination (com.google.cloud.translate.v3beta1.GcsDestination)1 GcsSource (com.google.cloud.translate.v3beta1.GcsSource)1 LocationName (com.google.cloud.translate.v3beta1.LocationName)1 TranslationServiceClient (com.google.cloud.translate.v3beta1.TranslationServiceClient)1 TranslationServiceSettings (com.google.cloud.translate.v3beta1.TranslationServiceSettings)1