如何从后端 运行 Google App Engine 端点方法
How to run Google app engine endpoint methods from the backend
我已经在我的 App Engine 项目中执行了 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;
}
将客户端端点 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();
我已经在我的 App Engine 项目中执行了 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;
}
将客户端端点 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();