POST/ --ms --
여느 때와 같이, POSTMAN을 이용해서 서버 구축을 하고 있을 때였다.
개발하고 있던 부분이 파이썬 파일을 열어서 영상처리를 하는 부분이었다.
1. 하나의 영상에 화자를 찾고,
2. 그 주변에 말풍선 이미지를 달고
3. 그 위에 자막을 오버레이 하는
시간이 많이 걸리는 과정이기 때문에
정상적으로 프론트에 성공했다는 메시지를 줄지 의문이 들었었던 부분이기는 했다.
POST 방식으로 POSTMAN을 이용해서 백에 req를 주었더니, 백의 콘솔 창에서는 계속 실행 중이다가 갑자기
POST/ --ms--이라는 문구가 뜨면서 실행이 중지되었다.
이게 무슨일인가 싶어서 계속 구글링을 하다가 하나의 글을 발견했다.
https://velog.io/@rohkorea86/NodeJs-%EC%BD%98%EC%86%94-GET-ms-%EB%A9%94%EC%84%B8%EC%A7%80
[NodeJs][문제해결] 콘솔창에 GET / - - ms - - 메세지 출력 시
#요약 localhost로 node 작업 중, 화면이 나오지 않고 콘솔창에 GET / - - ms - - 메세지를 보게 되면, 미들웨어 함수안에 next()를 호출(입력)했는지 확인한다 #배운점 1. 미들웨어는 위에서 부터 순서대로
velog.io
response를 오랫동안 주지 않아서 서버가 커넥션을 중지시켰다는 것이다. 워낙 오래 걸리는 것이라
(30초 영상에 영상처리가 무려 10분이 넘게 걸린다는 점..)
중간에 연결이 끊기면 절대 안 되었다. 그래서 위의 블로그처럼 next()를 넣어주었다.
exports.change = async (req, res, next) => {
// 중략
next()
// 그 뒤로 실행될 파일들
}
하지만, 이것도 잘 먹히지 않았다.
그래서 찾아낸 것이 바로
exports.change = async (req, res, next) => {
req.connection.setTimeout(60 * 15 * 1000); // set timeout 3 min.
var subtitle = await req.body.subtitle;
var videoid = await req.body.videoid;
// 중략
}
위의 처럼 처음에 req.connection에 시간을 넉넉히 줘서 연결이 끊기는 것을 막는 것이다.
그 결과, POSTMAN에서도, 백의 콘솔 창에서도 잘 실행이 되었다.
'우당탕탕 개발일지 > Computer_졸업프로젝트' 카테고리의 다른 글
[AWS 배포] dlib을 설치해보자 (0) | 2020.10.11 |
---|---|
[AWS 배포] FFMPEG 설치의 길을 향해 (0) | 2020.10.11 |
[AWS 배포] 우분투에는 디스플레이가 없다! (0) | 2020.10.11 |
[NODE.JS] RES의 오류 속으로 (0) | 2020.09.08 |
[NODE.JS] 서버 개발기1_로그인/회원가입 (0) | 2020.09.02 |