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