【问题标题】:How to run Google app engine endpoint methods from the backend如何从后端运行 Google 应用引擎端点方法
【发布时间】:2017-03-25 20:50:26
【问题描述】:

我已经在我的应用引擎项目中执行了我的 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;
}

【问题讨论】:

标签: java google-app-engine backend endpoint warm-up


【解决方案1】:

将客户端端点 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();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 2013-04-03
    • 1970-01-01
    • 2020-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多