fix: hot-reload trade direction/whitelist on env save without forced restart.

EOF

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-07-17 19:24:10 +08:00
parent b7966fd935
commit 4d381e9104
12 changed files with 111 additions and 15 deletions
+12
View File
@@ -401,6 +401,17 @@ AUTO_TRANSFER_BJ_HOUR = int(os.getenv("AUTO_TRANSFER_BJ_HOUR", "8"))
POSITION_SIZING_MODE = load_position_sizing_mode()
KEY_AUTO_ORDER_ENABLED = load_key_auto_order_enabled()
TRADE_POLICY = load_trade_policy()
def _reload_trade_policy_from_env(changed_keys=None):
"""env 保存后热更新方向/白名单策略(无需重启)."""
global TRADE_POLICY
keys = set(changed_keys or [])
from lib.env.env_schema import TRADE_POLICY_ENV_KEYS
if keys and not keys.intersection(TRADE_POLICY_ENV_KEYS):
return
TRADE_POLICY = load_trade_policy()
WECHAT_TIMEOUT_SECONDS = int(os.getenv("WECHAT_TIMEOUT_SECONDS", "10"))
AI_TIMEOUT_SECONDS = int(os.getenv("AI_TIMEOUT_SECONDS", "120"))
MONITOR_POLL_SECONDS = int(os.getenv("MONITOR_POLL_SECONDS", "3"))
@@ -9895,6 +9906,7 @@ try:
exchange_key="gate",
username=USERNAME,
password=PASSWORD,
on_env_changed=lambda keys: _reload_trade_policy_from_env(keys),
)
except Exception as _settings_err:
print(f"[instance_settings] gate: {_settings_err}")