-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathbatch.py
More file actions
43 lines (33 loc) ยท 1.47 KB
/
batch.py
File metadata and controls
43 lines (33 loc) ยท 1.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# batch_runner.py
from db import SessionLocal
from services import market_service, financial_service, stock_service, ohlcv_service, sector_service
def load_symbols_from_txt(path: str) -> list[str]:
with open(path, "r", encoding="utf-8") as f:
line = f.readline()
symbols = [s.strip() for s in line.split(",") if s.strip()]
return symbols
def run_batch_job(symbol_txt_path: str = "./static/symbols.txt") -> None:
symbols = load_symbols_from_txt(symbol_txt_path)
# symbols=symbols[:2]
session = SessionLocal()
try:
print("๐ฆ ์ข
๋ชฉ ๊ธฐ๋ณธ ์ ๋ณด ์์ง ์์...")
stock_service.collect_stock_profiles_yf(session, symbols)
print("โ
์ข
๋ชฉ ๊ธฐ๋ณธ ์ ๋ณด ์์ง ์๋ฃ.")
market_service.collect_all_market_metrics(session)
print("โ
์์ฅ ๋ฐ์ดํฐ ์์ง ์๋ฃ")
sector_service.collect_sector_performance(session)
print("โ
์นํฐ ์์ต๋ฅ ์์ง ์๋ฃ")
ohlcv_service.collect_ohlcv_daily(session, symbols)
ohlcv_service.collect_ohlcv_weekly(session, symbols)
ohlcv_service.collect_ohlcv_monthly(session, symbols)
print("โ
OHLCV ์์ง ์๋ฃ")
financial_service.collect_missing_financials(session, symbols)
print("โ
FMP ์ฌ๋ฌด ๋ฐ์ดํฐ ์์ง ์๋ฃ")
except Exception as e:
print(f"โ ๋ฐฐ์น ์ค๋ฅ ๋ฐ์: {e}")
session.rollback()
finally:
session.close()
if __name__ == "__main__":
run_batch_job()