1

Docker コンテナーにPlay 2.3.xを使用する REST API があります。この API はPostgresSQL 9.4データベース (Docker コンテナー上でも) と通信し、JSON を提供します。クライアントは React と同型のアプリです (Docker コンテナーでも)。

クライアントがルートを変更すると、いくつかのリクエストが API に送信されます。問題は、すべてのリクエストが異常に遅いことです。たとえば、次の uri があります。

GET /api/taxon/185214/geojson

このリクエストをブラウザから直接送信すると、4 秒後にレスポンスが表示されます。このリクエストが他のリクエストと一緒に送信されると、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