最近,我一直在使用typeorm对我们的express node js api进行一些负载测试。测试非常简单,我正在使用一个循环来达到“获取食物”端点3000次。
类似
for (let i = 0; i < 3000; i++) {
fetch("http://url/food").then(resp=>resp.text()).catch(err=>console.log(err));
}
我确实收到很多ECONNRESET错误(套接字挂断)。但是之后,我再也无法达到目标了。我仍然可以命中索引终结点(不需要任何数据库连接)。但是除此之外,api调用只是挂起。我以为服务器已关闭,但我仍然可以访问索引(无数据库连接)端点。
我想这可能与typeorm db连接有关,也许死了的api调用仍然保留了db连接。有没有人看过类似的行为?任何帮助将不胜感激。
索引终点
const router = Router();
router.get("/", function(req: Request, res: Response, next: NextFunction) {
res.send("food index!!");
});
export default router;
食物终点
const router = Router();
router.get("/", getFoodController);
export default router;
getFoodController将发出typeorm数据库连接
当我检查日志时,我看到了一吨
GET /food -- ms --