INVESTAR / StockAnalysisInPython

456 stars 413 forks source link

5장. DBUpdater 관련 질문입니다. #102

Closed kws124 closed 3 years ago

kws124 commented 3 years ago

좋은 책 집필해 주셔서 재미있게 공부하고 있습니다. 그래서 질문도 많은 데, 아래는 그 중의 하나입니다. ㅎㅎ

5장의 DBUpdater 모듈 안의 execute_daily() 함수를 작성하여 매일 5시에 DB 자동 업데이트를 실행해 보았습니다. 아래와 같은 오류가 뜨는 데, 해결책을 잘 모르겠습니다.

Waiting for next update (2021-08-11 17:00) ... Exception in thread Thread-1: Traceback (most recent call last): File "C:\Users\AppData\Local\Programs\Python\Python38\lib\site-packages\pymysql\connections.py", line 713, in _write_bytes self._sock.sendall(data) ConnectionAbortedError: [WinError 10053] 현재 연결은 사용자의 호스트 시스템의 소프트웨어의 의해 중단되었습니다

답신 주시면 공부에 많은 도움이 될 것 같습니다. 감사합니다~~

INVESTAR commented 3 years ago

236 페이지의 '5.3.10 마리아디비 자동 연결 해제 방지'를 참고하시기 바랍니다. 마리아디비 설정 파일(C:\Program Files\MariaDB 10.5\data\my.ini )에서 mysqld 섹션의 wait_timeout값을 288000초(80시간)로 설정하시면 장시간 대기로 인한 ConnectionAbortedError(10053)를 피할 수 있습니다.

kws124 commented 3 years ago

빠른 답신에 감사드립니다. 하지만 가르쳐 주신대로, 아래와 같이 설정을 하였음에도 같은 에러가 발생합니다. 어떻게 해야 좋을까요...?

[mysqld] datadir=C:/Program Files/MariaDB 10.5/data port=3306 innodb_buffer_pool_size=972M wait_timeout = 288000

[client] port=3306 plugin-dir=C:/Program Files/MariaDB 10.5/lib/plugin

INVESTAR commented 3 years ago
wait_timeout : 활동하지 않는 커넥션을 끊을 때까지 서버가 대기하는 시간 
interactive_timeout : 활동중인 커넥션이 닫히기 전까지 서버가 대기하는 시간

마리아디비 설정 파일(C:\Program Files\MariaDB 10.5\data\my.ini)의 mysqld 섹션에서 interactive_timeout=288000 추가해 보시기 바랍니다.

그래도 안 된다면 제어판 > 전원 옵션 > 컴퓨터를 절전 모드로 설정 > [해당 없음]으로 설정하시고 고급 전원 관리 옵션 설정 변경 > 다음 시간 이후에 하드 디스크 끄기 > 설정(분) > [0]으로 설정해 보시기 바랍니다.

kws124 commented 3 years ago

해결되었습니다. 감사합니다. 집필에 그치지 않고 끝까지 독자들의 질문에 답해주시는 책임감 있는 모습이 감동스럽습니다.

지금까지 많은 책을 봤지만, -김작가님의 이 책처럼 오류도 매우 적고 -하나의 시스템을 만들기 위한 다방면의 지식을 -간결하고 정확한 표현으로 전달한 책은 드물게 봅니다. 그래서 주식자동매매를 넘어 다양한 도메인으로도 확장 응용해 볼 수 있는 기본서로서의 가치가 매우 큰 저서라고 생각됩니다.

재미있게 읽었습니다. 앞으로도 좋은 책 많이 집필해 주세요~~

감사합니다.