36 lines
1.7 KiB
Python
36 lines
1.7 KiB
Python
import sys
|
|
sys.path.insert(0, "/home/hoon/kis_bot")
|
|
from database import TradeDB
|
|
from kis_trader.utils.env import invalidate_merged_env_cache
|
|
|
|
db = TradeDB()
|
|
try:
|
|
snap = dict(db.get_merged_env_snapshot() or {})
|
|
changed = False
|
|
|
|
print("=== 시세 공급자를 다시 키움으로 복구 ===")
|
|
|
|
# 1. WS_PROVIDER: kis_with_validation 을 빈 값이나 kis_only 로 변경?
|
|
# 기본은 KIS를 백그라운드용으로 쓰되 메인을 키움으로 하려면 WS_SUBSCRIBE_KIS_MINIMAL=True 로 둡니다.
|
|
# 하지만 40개 한도 이슈가 있으므로, WS_PROVIDER="kis_only" (또는 "kiwoom" 등 기본값) 으로 돌립니다.
|
|
# 실제로 KIS 시세를 끄려면 WS_SUBSCRIBE_KIS_MINIMAL=True 로 하면 후보 종목(20개)은 키움으로 구독합니다.
|
|
if snap.get("WS_SUBSCRIBE_KIS_MINIMAL") is not True and str(snap.get("WS_SUBSCRIBE_KIS_MINIMAL")).lower() != 'true':
|
|
print(f" WS_SUBSCRIBE_KIS_MINIMAL: {snap.get('WS_SUBSCRIBE_KIS_MINIMAL')} -> True (키움 메인 시세 사용)")
|
|
snap["WS_SUBSCRIBE_KIS_MINIMAL"] = True
|
|
changed = True
|
|
|
|
# WS_PROVIDER 는 굳이 안 건드려도 되지만 확실하게 검증기(validation) 부하를 빼려면 빈 문자열 처리
|
|
if snap.get("WS_PROVIDER") == "kis_with_validation":
|
|
print(f" WS_PROVIDER: {snap.get('WS_PROVIDER')} -> kis_only (키움 검증 로그 오프)")
|
|
snap["WS_PROVIDER"] = "kis_only"
|
|
changed = True
|
|
|
|
if changed:
|
|
db.insert_env_snapshot(snap)
|
|
invalidate_merged_env_cache()
|
|
print("\n✅ DB 업데이트 및 캐시 무효화 완료!")
|
|
else:
|
|
print("\n✅ 이미 설정되어 있습니다.")
|
|
finally:
|
|
db.close()
|