API 작성 중 

 

26번까지의 반복 작업(반복문)-- 각 작업마다 조금씩 다름 --

 

을 통해서 구한 정보를 데이터 베이스에 토큰단위로 삽입을 하는 작업인데,

 

카운트를 해보니 계속 0~9까지 작업 중 10번에서 계속 서버가 멈추는 이슈가 발생했습니다.

 

처음에는 10번 작업에 문제가 있는 줄 알고, 확인을 해봤는데 딱히 문제를 발견하지 못해서

 

10~26번 까지 돌려 보니 10,11,12.........20에서 멈추는 것이였습니다.

 

자바스크립트에 아직 그리 익숙치 않아 여러 문제 발생가능 지점을 찾아봤는데, 잘 해결이 안되었는데

 

문제는 connection.release()를 안해주고 있었습니다......바보......

 

const connection= await pool.getConnection(async (conn) => conn); 을 해줬으면 

 

밑에서 connection.release()를 반드시 해줘야 한다..

 

반납하지 않으면 connection leak현상이 발생할 수 있다.

 

릴리즈를 해줘야 이 커넥션은 pool로 돌아가서 다른 주체가 사용할 수 있도록 할 수 있다.

Python-shell 이용하여, Nodejs에서 파이썬 스크립트 실행시키기

 

최근노드js를 이용하여 어플을 제작 중에 있습니다.

 

만들고자 하는 기능 중 시간에 민감한 기능이 있는데, 파이썬의 api를 이용해서 구현한 것을

 

nodejs에서 실행시키고, 결과를 받아와야 할 일이 있어서, 찾아보고 진행하였습니다.

 

찾아본 결과, child-process 이용, python-shell 이용 등의 방법들이 있었는데, 비교적 간단한 파이썬 스크립트를

 

실행하는 작업이였기 때문에 저는 python-shell 을 이용하여 진행하였습니다.

 

매우 간단한 작업 같으나, 다른 블로그의 게시글 중 오래된 글들도 있어, 오류가 좀 났었습니다.

 

버전에 따른 차이도 조금 있을거라 생각하는데, 실행시킨 코드는 다음과 같습니다.

( 우분투 버전 18.04 에서 진행하였고, python-shell, 파이썬 설치 및 추가로 사용할 모듈들은 설치를 따로 해주셔야 

원하는 결과를 받으실 수 있을겁니다....!)

 

 도 설치해야 했던 것으로 기억하고, 제 코드에는 시간을 측정하는 코드가 추가로 들어가있습니다.

 

현재 상황에서는 파이썬 스크립트로 전달할 값이 없었으므로, 추석처리 했으나 포함시켜 실행도 가능합니다.

 

파이썬에서는 sys.argv 와 같은식으로 값을 사용가능합니다.

 

저는 index.js ( app.js 인 분들도 많으시겠죠 )

 

와 같은 폴더내에 파이썬 스크립트를 넣어놓았으므로 scriptPath: 는 따로 설정하지 않았습니다.

 

결과는 파이썬에서 print한 결과를 받아옵니다.

'Web & App > Nodejs' 카테고리의 다른 글

(21.05.26) connection.release() 꼭  (0) 2021.05.27
(21.05.23) async-await 에러 핸들링  (0) 2021.05.24

+ Recent posts