Периодически я не могу создать задачу GCP из-за java.lang.RuntimeException: сайт размещения ManagedChannel - PullRequest
0 голосов
/ 18 февраля 2019

Я создаю задачи, как описано в https://cloud.google.com/tasks/docs/creating-appengine-tasks

Это работает в 99% случаев, но иногда я получаю следующее исключение:

java.lang.RuntimeException: ManagedChannel allocation site
at io.grpc.internal.ManagedChannelOrphanWrapper$ManagedChannelReference.<init> (ManagedChannelOrphanWrapper.java:103)
at io.grpc.internal.ManagedChannelOrphanWrapper.<init> (ManagedChannelOrphanWrapper.java:53)
at io.grpc.internal.ManagedChannelOrphanWrapper.<init> (ManagedChannelOrphanWrapper.java:44)
at io.grpc.internal.AbstractManagedChannelImplBuilder.build (AbstractManagedChannelImplBuilder.java:411)
at by.company.application.QueueService.createTask (QueueService.java:76)

Код метода внутри QueueService:

 private void createTask(String queueName, String payload, long timeShiftMillis) {
String queuePath = QueueName.of(gcpProjectId, gcpLocation, queueName).toString();

try (CloudTasksClient client = CloudTasksClient.create()) {
    Task.Builder taskBuilder = Task
            .newBuilder()
            .setAppEngineHttpRequest(AppEngineHttpRequest.newBuilder()
                    .setBody(ByteString.copyFrom(payload, Charset.defaultCharset()))
                    .setRelativeUri("/" + queueName)
                    .setHttpMethod(HttpMethod.POST)
                    .build());

    taskBuilder.setScheduleTime(Timestamp
            .newBuilder()
            .setSeconds(Instant.now(Clock.systemUTC()).plusMillis(timeShiftMillis).getEpochSecond()));

    Task build = taskBuilder.build();

    if (!gcpTaskEnabled) {
        return;
    }

    client.createTask(queuePath, build);
} catch (Exception e) {
    LOGGER.log(Level.SEVERE, "Can't create task", e);
}
}

1 Ответ

0 голосов
/ 21 февраля 2019

Это похоже на https://github.com/googleapis/google-cloud-java/issues/3648. Попробуйте обновить до последней версии google-cloud-tasks (и ее зависимостей), чтобы получить исправление.

...