云端点比rpc慢,但不是DevAppServer

时间:2014-07-31 17:24:01

标签: android google-app-engine google-cloud-endpoints objectify

我的Android应用程序只访问Objectify中的一个对象(每个包含几个短列表),但我的延迟时间长达15秒。我从来没有在我的网络应用程序中使用rpc来获取相同的对象,也没有使用android或浏览器应用程序访问blobstore时。我认为这可能与JSON解析有关,如下所述:JSON parsing very slow in Google Cloud Endpoints但在这种情况下,我们预计DevAppServer会出现类似的延迟吗?

以下是GAE应用中的端点代码:

Endpoint类基于GPE自动生成的,减去所有与JDO / JPA相关的代码

@Api(name = "myclassendpoint",namespace = @ApiNamespace(ownerDomain = "timmacp.com",ownerName = "timmacp.com", packagePath = "endpoints_in_android_app"))
public class MyClassEndpoint {

@ApiMethod(name = "getMyClassObjectByID")
public MyClass getMyClassObjectByID(@Named("id") String id) {

    MyClass object=ofy().load().type(MyClass.class)     
                    .id(EndpointUtils.URLdecode(id)).get();
    return object;
}

在Android应用程序中,我为每个按钮创建一个新的EndpointsTask(扩展AsyncTask) &安培;所有对Endpoint类的调用都在通过execute()调用的doInBackground(..)中。

首先创建端点:

    MyClassendpoint endpoint;

    MyClassendpoint.Builder endpointBuilder = new MyClassendpoint.Builder(
            AndroidHttp.newCompatibleTransport(), new com.google.api.client.json.jackson2.JacksonFactory(),
            new HttpRequestInitializer() {
                public void initialize(HttpRequest httpRequest) {
                }
            });

    endpointBuilder=CloudEndpointUtils.updateBuilder(endpointBuilder);
    endpoint =endpointBuilder.build();

然后测试:

endpoint.getMyClassObjectByID("object1").execute();

1 个答案:

答案 0 :(得分:0)

请参阅此主题以获取更多信息:

https://groups.google.com/forum/#!topic/google-appengine/3XGJFaosX9s

我们正在努力消除预热的需要(即对您的API的第一次请求将导致预热