안녕하세요?


지난번 포스팅에서는 subprocess를 가지고서 한번 시도를 해 보기는 보았습니다만, 그 결과가 그렇게 까지 시원찮은 것을 볼 수 있었습니다. 이번 포스팅에서도 이어서 이 첫번째 장애물을 극복해 보기 위해 가지가지 시도를 해 보았고, 그 내용을 올려 보고자 합니다.



그래서 이번에는 shell=True라는 옵션을 한번 줘 보기로 했습니다. 물론 이 옵션은 바로 cmd창에서 쓰는 명령어를 그대로 써 달라는 것이지만, 이걸 넣어서 한번 나아지리라 일단 생각을 해 보고서 한번 해 보는 것 입니다.



이번에도 역시 프로그램이 중간에 그냥 종료되어 버리는 이상현상이 계속해서 일어나는 것을 볼 수 있기는 있었습니다.



그래도 일단 위 스크린샷처럼 한번 buy_list에서 구매목록이 나오는 것으로 보아서 자식 프로세스가 제대로 결과는 내 보내는 것이라는 것을 볼 수 있었습니다. 



그래서 이번에는 한번 마킹을 남겨서, 어디서 충돌이 일어나는 것인지 알아 보고자 하는 생각이 들어서, 위 스크린샷처럼 한번 마커를 남기도록 했습니다.




일단 어떻게 된 것인지 모르겠지만, 이번에는 제대로 load_buy_sell 메서드가 실행이 된 것까지는 확인을 할 수 있었습니다. 그래서 이번에는 뭐가 달라진 것인지 모르겠습니다.



그런데 다시 한번 실행을 시켜 보니까 이제서야 좀 문제가 되는 것이 하나 보이기는 보였습니다. 위 스크린샷처럼 종목코드라는 말이 나오는데, 이건 input_value가 요청되면서 나오는 것 입니다. 즉, 아직 RLTrader가 제대로 끝나지 않았는데, 또 실행하라는 명령이 내려져서 문제가 나오는 것이 아닌가 하는 생각이 듭니다.



그래서 한번 위 스크린샷처럼 print()메서드를 사용해서 마킹을 해 보도록 합니다.



그리고 나서 위 스크린샷처럼 또 다른 마커를 또 남겨서 과연 제 짐작처럼 또 요청이 된 것이 맞는지 확인해 보도록 합니다.




일단 계좌정보 요청이 또 나오는 것을 볼 수 있는데, 이것만으로는 확신을 할 수는 없었습니다.



그래서 이번에는 위 스크린샷처럼 실시간 투자를 하는 메서드의 바로 직전에 마커를 찍어서 이게 중복처리 되는지 보도록 합니다.



일단 시작하자 마자 위 스크린샷처럼 실시간 투자를 하는 메서드가 실행이 된 것을 확인할 수 있기는 있었습니다. 여기까지는 정상적이라는 생각이 듭니다.



그런데 위 스크린샷처럼 아직 RLTrader가 작동중에 있는데, 다시 실시간 투자를 하는 pytrader의 메서드-바로 또 RLTrader를 또 호출하는 메서드가 실행이 되었습니다. 이런 일이 벌어졌기 때문에, 충돌이 일어나서 프로그램이 정지되었다는 것을 알 수 있었습니다. 이제 이 첫번째 장애물을 극복하기 위해서는 이렇게 중복 호출이 되는 문제를 해결해야 겠습니다.

+ Recent posts