如何从 api 获得响应,但不是 504 网关超时问题
Posted
技术标签:
【中文标题】如何从 api 获得响应,但不是 504 网关超时问题【英文标题】:How to get response from an api, but not a 504 gateway time out issue 【发布时间】:2019-05-29 20:43:23 【问题描述】:module.exports.usersPagination = (root, start, limit ) =>
return new Promise((resolve, reject) =>
var status = true;
db.User.find(accountType:'user',isDeleted: $ne:
status).count().exec((err, count) =>
db.User.find(accountType:'user',isDeleted: $ne:
status).sort(created:-1).skip(start).limit(limit).exec((err, user) =>
if(user)
user[0].count = count
err ? reject(err) : resolve(user);
)
);
);
;
我收集了 80,000 条记录,我想在 UI 中每页显示 20-20 条,但我的问题是当我尝试将起始值设为“30000”时 在邮递员中,它显示网关超时,请帮帮我。 提前感谢
【问题讨论】:
【参考方案1】:您得到的错误是由于服务器处理请求并返回响应的时间过长:
504 网关超时:服务器充当网关或代理,没有收到来自上游服务器的及时响应。 (来自***)
确实,您的代码对数据库执行了两次查询:
-
确实第二次执行跳过
start
行,但是...
...查询的第一个实例是具体化数据库中的整个行集。
只查询一次,不要具体化整组行。
【讨论】:
我想显示收集的总用户数,所以我使用的是查询的第一个实例 得到了解决方案,在第二次执行时我删除了sort(created:-1)
,它对我来说工作正常以上是关于如何从 api 获得响应,但不是 504 网关超时问题的主要内容,如果未能解决你的问题,请参考以下文章
Elastic Beanstalk Worker 的 SQS 守护程序在 1 分钟后获得 504 网关超时
连接 Facebook Graph API 时 ElasticBeanstalk for PHP 上的 504 网关超时