1

我在我的应用程序引擎项目中遵循了我的 WarmupServlet 的所有配置步骤,我看到它在启动时运行,但我仍然看到我的第一个端点调用是一个加载请求,它需要长达 25 秒,这是绝对不可接受的。我需要能够单独预热每个端点,这样就不会有加载请求。(显然,仅仅设置一个预热 servlet 是不够的。)所以,我的问题是,我怎样才能在端点中调用一个方法,以便正确预热端点以从我的 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;
}
4

1 回答 1

0

将客户端端点 jar 文件添加为库后,这会从 Java 后端正确预热 MyEndpoint:

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();
于 2017-04-09T19:53:11.263 回答