我在 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
}
}
);
}
每个请求是否应该在另一个线程中处理?
编辑
所以,经过几次测试,这只是我的开发计算机速度慢。实际上,在其他计算机上响应时间是正常的。