05/31 Phase 7: fixed fetch fx rate

This commit is contained in:
2026-05-31 17:10:09 -04:00
parent 84f48a7b4d
commit d74b9e7543
4 changed files with 159 additions and 52 deletions
+9 -7
View File
@@ -1,7 +1,8 @@
#!/usr/bin/env python3
"""
Cron script: fetch daily USD/VND exchange rate.
Cron script: fetch daily USD/VND exchange rate via yfinance.
Run by systemd timer pfm-fxrate.timer at 8AM daily.
Always force-refreshes regardless of cache.
"""
import sys
@@ -9,17 +10,18 @@ import os
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from app import create_app
from app.services.fx_service import get_today_rate
from app.services.fx_service import force_refresh
app = create_app()
if __name__ == '__main__':
with app.app_context():
result = get_today_rate()
print('[fx_rate] Fetching fresh USD/VND rate...')
result = force_refresh()
if result:
status = '(stale)' if result.get('is_stale') else ''
print(f"[fx_rate] 1 USD = {result['rate']:,.0f} VND "
f"[{result['source']}] {result['date']} {status}")
status = '(stale fallback)' if result.get('is_stale') else ''
print(f'[fx_rate] 1 USD = {result["rate"]:,.0f} VND '
f'[{result["source"]}] {result["date"]} {status}')
else:
print("[fx_rate] Failed to fetch rate.")
print('[fx_rate] Failed to fetch rate from all sources.')
sys.exit(1)