From f8143f462f9482dde95c764009f60aa645fb9121 Mon Sep 17 00:00:00 2001 From: "2569718930@qq.com" <2569718930@qq.com> Date: Wed, 1 Apr 2026 21:22:01 +0800 Subject: [PATCH] Push market focus digests in scan batches --- src/utils/telegram_push.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/utils/telegram_push.py b/src/utils/telegram_push.py index c51f2c18..298bc141 100644 --- a/src/utils/telegram_push.py +++ b/src/utils/telegram_push.py @@ -1055,6 +1055,7 @@ def start_trade_alert_push_loop(bot: Any, config: Dict[str, Any]) -> Optional[th 300, _env_int("TELEGRAM_MARKET_FOCUS_DIGEST_INTERVAL_SEC", 1800), ) + focus_digest_batch_size = max(4, min(12, _env_int("TELEGRAM_MARKET_FOCUS_DIGEST_BATCH_SIZE", 8))) def _runner() -> None: try: _save_state(state_path, _load_state(state_path)) @@ -1064,6 +1065,7 @@ def start_trade_alert_push_loop(bot: Any, config: Dict[str, Any]) -> Optional[th f"telegram market monitor loop started mode=focus-digest-only " f"cities={len(cities)} interval={interval_sec}s chat_targets={len(chat_ids)} " f"focus_digest_enabled={focus_digest_enabled} focus_interval={focus_digest_interval_sec}s " + f"focus_batch_size={focus_digest_batch_size} " f"state_path={state_path}" ) while True: @@ -1078,6 +1080,19 @@ def start_trade_alert_push_loop(bot: Any, config: Dict[str, Any]) -> Optional[th cycle_payloads.append(alert_payload) except Exception: logger.exception(f"telegram market monitor loop failed for city={city}") + if focus_digest_enabled and cycle_payloads and len(cycle_payloads) % focus_digest_batch_size == 0: + try: + if _maybe_send_focus_digest( + bot=bot, + chat_ids=chat_ids, + payloads=cycle_payloads, + state=state, + digest_interval_sec=focus_digest_interval_sec, + top_n=focus_digest_top_n, + ): + _save_state(state_path, state) + except Exception: + logger.exception("failed to push market focus digest mid-cycle") time.sleep(1) if focus_digest_enabled: