Как запустить методы конечной точки ядра приложения Google из серверной части

Я выполнил все шаги по настройке моего WarmupServlet в своем проекте движка приложения и вижу, что он запускается при запуске, но все же я вижу мой первый вызов конечной точки как запрос на загрузку, который занимает до 25 секунд, что абсолютно неприемлемо. Мне нужно иметь возможность разогревать каждую конечную точку отдельно, чтобы не было запросов на загрузку. (Очевидно, недостаточно просто настроить сервлет разогрева.) Итак, мой вопрос заключается в том, как я могу вызвать метод в конечных точках, чтобы конечная точка была правильно разогрета для обслуживания из моего WarmupServlet? Я попробовал ниже безуспешно:

MyEndpoint me = new MyEndpoint();
me.getMyEntity(1L);

где

@ApiMethod(name = "getMyEntity")
public MyEntity getMyEntity(@Named("id") Long id) {
    EntityManager mgr = getEntityManager();
    MyEntity myEntity = null;
    try {
        myEntity = mgr.find(MyEntity.class, id);
    } finally {
        mgr.close();
    }
    return myEntity;
}

1 ответ

Решение

После добавления файла JAR конечных точек клиента в виде библиотеки это правильно согревает MyEndpoint из бэкэнда Java:

NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance();

Myendpoint.Builder endpointBuilder = new Myendpoint.Builder(
          HTTP_TRANSPORT,
          JSON_FACTORY,
          null);

endpointBuilder.setApplicationName("My App");
Myendpoint endpoint = endpointBuilder.build();
endpoint.getMyEntity(1L).execute();
Другие вопросы по тегам