본문 바로가기
무모한 도전-주식 인공지능 만들기

병렬처리 방법을 이용한 새방법의 시도 part2

by 인터넷떠돌이 2019. 6. 17.
반응형

안녕하세요?

 

지난번 포스팅에서 종목코드와 데이터 베이스라는 편의기능을 생각하기는 했습니다만, 문제가 생기기는 생겼습니다. 바로 그게 뭐냐 하면, 진짜로 6개 종목을 한번에 돌리는 것이 가능한가 하는 것 입니다. 실제로 4개 종목 이상 돌리지 못하면 아무런 의미가 없기는 없습니다.

 

먼저 이 실험을 위해서 여러개의 복사된 py파일을 만들어 주어야 하는 필요성이 있어 보입니다. 이렇게 하는 것으로 총 6개의 파일을 만들어 보았습니다.

 

다음으로는 일단 나중에 하기로 하고, 지금은 지금대로 해당하는 communication.txt의 이름을 바꾸어 주도록 합니다. 이렇게 하는 것으로 일단 다른 데이터 베이스와 종목코드가 우선 들어가도록 합니다.

 

그리고 좀 구닥다리 같은 방법이기는 하지만, 일단 txt파일에서 일일히 종목코드랑 데이터베이스 이름을 바꾸어 주도록 합니다.

 

그리고 나서 먼저 위 스크린샷과 같이 process라는 일련의 집합을 하나 만들어 주도록 합니다. 이 방법을 몰라서 정말 헤메기도 많이 해메었습니다.

 

 

그런데 이렇게 해서 실행은 시키는 것은 좋은데, 문제는 원인을 알 수 없는 이유로 인해서 하나하나 프로그램이 종료되는 현상이 벌어진 것 입니다. 그래서 한번 6개의 py 파일을 하나하나 실행시켜서 어떤 에러가 나오나 했더니, 위 스크린샷과 같은 에러가 나오는 것을 확인할 수 있었습니다.

 

그래서 이게 문제가 있다고 먼저 판단을 하고나서, 위 스크린샷과 같이 kiwoom.py에 메세지를 따로 받아오기 위한 클래스 변수를 선언해 주도록 합니다.

 

그리고 나서 서버에서 메세지를 수신하는 메서드에 가서, 이 클래스 변수에다가 키움증권 서버로 부터 받아온 메세지를 저장하도록 합니다.

 

그리고 나서 다음으로 할 것은 일일히 subprocess에 해당하는 파일에 가서, 위 스크린샷처럼 먼저 kiwoom.py에서 받아오는 것으로 되어 있는 변수를 저장해 보도록 합니다.

 

그리고 나서 한번 '알수 없는 오류로 인해 서비스가 원활하지 않습니다.' 라는 메세지가 오면, 아예 프로세스를 종료시키도록 만들어 보도록 합니다.

 

그리고 한개만 만들어 놓으면 놓칠 우려가 있기 때문에, 여러번 설치를 해 주는 것도 잊으면 곤란하다면 곤란한 작업이 됩니다.

 

이렇게 해서 처음 설치한 첫번째 py파일에서는 제대로 에러없이 실행이 되는 것을 확인할 수 있었습니다. 그래서 이제 다른 py파일에도 한번 적용해 보고자 합니다.

 

이제 다른 py파일에도 똑같은 작업을 해 주도록 합니다. 이 작업도 일일히 손으로 해야 해서, 상당한 시간이 걸리기는 걸렸습니다.

 

그런데 이렇게 하고 나서도, 위 스크린샷과 같은 종류의 에러가 나오는 것을 볼 수 있었습니다. 이렇게 해서 한번 키움증권 서버에서 가지고 오는 메세지만 가지고서 어떻게 하는 것은 영 좋지가 않다는 것을 알 수 있었습니다. 이제 어떻게 해서 이 에러를 해결해야 할지 난감하기는 난감합니다.

반응형