라떼군 이야기
timeout 관리 (Express, axios, ELB)
Problem
작업이 오래 걸리는 요청을 하면 timeout
오류에 자주 빠지게 된다.
피드백 없이 응답이 오래 걸리는 것은 문제이긴 상황에 따라 정말 필요한 경우도 있다.
나는 Express(node.js)
와 axios
그리고 aws
의 loadbalencer
를 구성해서 사용하고 있었는데 이와 같은 상황에서 timeout
을 다룰 수 있는 부분에 대해서 정리해보고자 한다.
Solution
Express
$ npm install connect-timeout
const timeout = require('connect-timeout')
...
app.use(timeout('5s'))
app.post('/save', timeout('5s'), ...
axios
const instance = await.create({
url: 'https://www.domain.com/',
timeout: 50000
});
ELB (Elastic Load Balancer)
사실 같은 구성을 이용한다면 이 부분이 가장 중요했다. 여기의 유휴 제한 시간이 위 다른 제한시간보다 더 길게 설정되어야 문제가 없었다.1