From 3821a1b2a66f47df8a0b51e205e439ecf25d9fd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=AE=D1=80=D0=B8=D0=B9=20=D0=A7=D0=B5=D1=80=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=BA=D0=BE?= Date: Sat, 1 Nov 2025 12:53:17 +0300 Subject: [PATCH] =?UTF-8?q?=D1=87=D0=B8=D1=81=D1=82=D0=B8=D0=BC=20lates=5F?= =?UTF-8?q?data=20=D0=BF=D0=B5=D1=80=D0=B5=D0=B4=20=D0=B7=D0=B0=D0=BF?= =?UTF-8?q?=D1=83=D1=81=D0=BA=D0=BE=D0=BC=20=D0=BE=D1=84=D1=84=D0=BB=D0=B0?= =?UTF-8?q?=D0=B9=D0=BD=20=D1=82=D1=80=D0=B5=D0=B4=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- get_data.py | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/get_data.py b/get_data.py index 481c816..094b67e 100644 --- a/get_data.py +++ b/get_data.py @@ -92,6 +92,25 @@ GAME_START_DT = None # datetime начала матча (локальная и GAME_TODAY = False # флаг: игра сегодня GAME_SOON = False # флаг: игра сегодня и скоро (<1 часа) +# общая очередь +results_q = queue.Queue() +# тут будем хранить последние данные +latest_data = {} +# событие для остановки потоков +stop_event = threading.Event() + +# отдельные события для разных наборов потоков +stop_event_live = threading.Event() +stop_event_offline = threading.Event() + +# чтобы из consumer можно было их гасить +threads_live = [] +threads_offline = [] + +# какой режим сейчас запущен: "live" / "offline" / None +CURRENT_THREADS_MODE = None + + URLS = { "seasons": "{host}/api/abc/comps/seasons?Tag={league}", "actual-standings": "{host}/api/abc/comps/actual-standings?tag={league}&season={season}&lang={lang}", @@ -107,7 +126,7 @@ URLS = { def start_offline_threads(season, game_id): """Запускаем редкие запросы, когда матча нет или он уже сыгран.""" - global threads_offline, CURRENT_THREADS_MODE, stop_event_offline + global threads_offline, CURRENT_THREADS_MODE, stop_event_offline, latest_data # если уже работаем в офлайне — не дублируем if CURRENT_THREADS_MODE == "offline": @@ -115,6 +134,8 @@ def start_offline_threads(season, game_id): # на всякий случай гасим лайв stop_live_threads() + + latest_data = None stop_event_offline.clear() threads_offline = [ @@ -257,23 +278,6 @@ def stop_offline_threads(): logger.info("[threads] OFFLINE threads stopped") -# общая очередь -results_q = queue.Queue() -# тут будем хранить последние данные -latest_data = {} -# событие для остановки потоков -stop_event = threading.Event() - -# отдельные события для разных наборов потоков -stop_event_live = threading.Event() -stop_event_offline = threading.Event() - -# чтобы из consumer можно было их гасить -threads_live = [] -threads_offline = [] - -# какой режим сейчас запущен: "live" / "offline" / None -CURRENT_THREADS_MODE = None # Функция запускаемая в потоках