안녕하세요?

 

지난번에 포스팅을 했는 그대로 일단 4개의 종목만 되는 것이 문제였습니다. 그래서 병렬 처리에 관한 책을 찾아보고 나서 이 방법이 통할 것 같다는 생각이 들어서 일단 작업을 해 보고자 합니다.

 

먼저 위 스크린샷에서 볼 수 있는 것처럼 일단 코딩을 해서, 제가 의도한 대로 경로가 나오는 지 아닌지 여부를 알아 보고자 합니다.

 

우선은 subprocess로 실행을 시킬 경로 자체는 위 스크린샷에서 나오는 것처럼 일단은 작업이 제대로 일어나기는 난다는 것을 알 수 있었습니다.

 

다음으로는 MyStockTradedr0를 복사해서 MyStockTrader1.py로 만들어 주도록 합니다. 이렇게 하는 것으로 일단 멀티 프로세스로 동작을 시키고자 합니다.

 

 

이렇게 해서 일단 subprocess로서 작동을 하는 것 까지는 확인할 수 있기는 있었습니다. 이제 본격적으로 병렬처리 방식을 응용해 볼 차례입니다.

 

일단은 첫 시도로, 위 스크린샷과 같이 multiprocessing.Pool을 사용해 보도록 했습니다. 이렇게 함으로서, 여러번 메서드를 동시에 실행시킬 수 있으리라 생각을 했습니다.

 

그런데 어떻게 된 것인지 몰라도, 위 스크린샷처럼 에러없이 실행은 되기는 되는데 정작 Open API로 접속이 되지는 않는 것을 볼 수 있었습니다.

 

그래서 먼저 위 스크린샷과 같이 클래스를 선언하는 곳에다가 multiprocessing.Process라고 옆에 집어 넣어 주고, 이제 id항목을 만들어 주도록 해서, 타겟이 되는 메서드에 집어넣어 주도록 합니다.

 

그 다음에는 위 스크린샷처럼 프로세스를 2개 만들어 주어서 일단 start()명령을 주어서 실행시켜 보도록 합니다. 일단 임시로 2개만 실행입니다.

 

일차적으로는 위  스크린샷과 같이 아무런 이상이 없는 것을 볼 수 있었습니다. 일단 실행 자체는 아무런 이상이 없이 된다는 것을 알 수 있었습니다.

 

다음으로는 위 스크린샷과 같이 Open API로 접속을 하는 것 까지도 확인을 할 수 있었습니다. 이렇게 하는 것으로 겨우겨우 1단계가 성공한 것으로 보입니다만, 문제는 당장 어떻게 종목코드랑 데이터 베이스가 다른 것을 지정할 수 있느냐 하는 것 입니다.

+ Recent posts