1

我在 Docker 容器上有一个带有Play 2.3.x的 rest api。此 api 与PostgresSQL 9.4数据库(也在 Docker 容器上)对话并提供 JSON。Client 是一个带有 React 的同构应用程序(也在 Docker 容器上)。

当客户端更改路由时,会向 api 发送多个请求。问题是每个请求都异常缓慢。例如,我有这个 uri:

GET /api/taxon/185214/geojson

当我从浏览器直接发送这个请求时,响应显示在 4s 结束时。当这个请求与其他请求一起发送时,需要多 12 秒。

什么会导致这个时间?

当然,api 的每一个动作都是异步的。例如,geojson 动作:

public static Promise<Result> showGeoJson(final Long id)
{
    Promise<GeoJsonModel> promise = F.Promise.promise(
            new Function0<GeoJsonModel>() {
                public GeoJsonModel apply() {
                    // Get data with ebean
                    return geojson;
                }
            }
    );

    return promise.map(
        new Function<GeoJsonModel, Result>() {
            public Result apply(GeoJsonModel geojson) {
                // return Result
            }
        }
    );
}

每个请求是否应该在另一个线程中处理?

编辑

所以,经过几次测试,这只是我的开发计算机速度慢。实际上,在其他计算机上响应时间是正常的。

4

0 回答 0