From c5ed964486cf1d7d6c7f04e47cb975558a10ad62 Mon Sep 17 00:00:00 2001 From: Dmitry Afanasyev Date: Sun, 14 Aug 2022 02:40:39 +0300 Subject: [PATCH] run in executor --- app/core/bot.py | 2 +- app/core/parse_web.py | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/core/bot.py b/app/core/bot.py index 396a0c3..33e1955 100644 --- a/app/core/bot.py +++ b/app/core/bot.py @@ -17,7 +17,6 @@ download_gecko_driver() driver = configure_firefox_driver() executor = ThreadPoolExecutor(5) -loop = asyncio.get_running_loop() stations_cb = CallbackData('station', 'direction') @@ -50,6 +49,7 @@ async def home_office( ) message = 'Остановка Б. Академическая ул, д. 15' + loop = asyncio.get_running_loop() text = await loop.run_in_executor(executor, parse_site, driver, url, message) # text = parse_site( diff --git a/app/core/parse_web.py b/app/core/parse_web.py index 07dc8dc..208c0df 100644 --- a/app/core/parse_web.py +++ b/app/core/parse_web.py @@ -1,3 +1,4 @@ +import asyncio import os import tarfile import time @@ -44,7 +45,7 @@ def configure_firefox_driver(private_window: bool = False) -> WebDriver: return firefox_driver -def parse_site(driver: WebDriver, url: str, message: str) -> str: +async def parse_site(driver: WebDriver, url: str, message: str) -> str: driver.get(url) time.sleep(4) elements = driver.find_elements( @@ -80,4 +81,5 @@ def parse_site(driver: WebDriver, url: str, message: str) -> str: answer += f'Автобус {bus_300.text} - {bus_300_arrival.text}\n' if bus_t19 and bus_t19_arrival: answer += f'Автобус {bus_t19.text} - {bus_t19_arrival.text}' + await asyncio.sleep(30) return answer