Problem

작업이 오래 걸리는 요청을 하면 timeout 오류에 자주 빠지게 된다. 피드백 없이 응답이 오래 걸리는 것은 문제이긴 상황에 따라 정말 필요한 경우도 있다. 나는 Express(node.js)axios 그리고 awsloadbalencer를 구성해서 사용하고 있었는데 이와 같은 상황에서 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

References