Предзагрузка всех картинок при старте + многопоточный веб-сервер
- _prewarm_media грузит ВСЕ *.jpg из help_img при старте (кроме bg.jpg), чтобы смена картинок услуг не подгружалась лениво в момент сообщения. - Веб-форма: ThreadingHTTPServer — медленный запрос не блокирует остальные; приём заявки сериализован _submit_lock (без гонок в SQLite/Excel). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -1194,15 +1194,15 @@ class VKBotApplication:
|
||||
try:
|
||||
peer = config.OPERATOR_PEER_ID
|
||||
base = os.path.join(os.path.dirname(__file__), "help_img")
|
||||
files = ["Logo.jpg", "cs2.jpg", "dota2.jpg", "wot.jpg",
|
||||
"career_player.jpg", "career_worker.jpg"]
|
||||
# Загруженные админом картинки услуг (service_<id>.jpg) — приоритетные для карусели
|
||||
files += [os.path.basename(p) for p in glob.glob(os.path.join(base, "service_*.jpg"))]
|
||||
for fn in files:
|
||||
path = os.path.join(base, fn)
|
||||
if os.path.exists(path):
|
||||
self._upload_photo(peer, path)
|
||||
logger.info("Медиа предзагружены в VK — карусель и логотип будут открываться быстро.")
|
||||
# Грузим ВСЕ картинки из папки (кроме фона веб-формы), чтобы ничего
|
||||
# не подгружалось лениво в момент сообщения.
|
||||
count = 0
|
||||
for path in sorted(glob.glob(os.path.join(base, "*.jpg"))):
|
||||
if os.path.basename(path).lower() == "bg.jpg":
|
||||
continue
|
||||
if self._upload_photo(peer, path):
|
||||
count += 1
|
||||
logger.info(f"Медиа предзагружены в VK ({count} картинок) — открываются мгновенно.")
|
||||
except Exception as e:
|
||||
logger.error(f"Не удалось предзагрузить медиа: {e}")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user