Make engine updating multithreaded

This commit is contained in:
Brett Williams
2023-10-25 02:57:25 -05:00
parent f01192909d
commit 917a15c60c

View File

@@ -1,6 +1,7 @@
import logging
import os
import shutil
import threading
from src.engines.blender.blender_downloader import BlenderDownloader
from src.engines.blender.blender_engine import Blender
@@ -147,8 +148,7 @@ class EngineManager:
@classmethod
def update_all_engines(cls):
logger.info(f"Checking for updates for render engines...")
for engine, engine_downloader in cls.downloader_classes.items():
def engine_update_task(engine, engine_downloader):
logger.debug(f"Checking for updates to {engine}")
latest_version = engine_downloader.find_most_recent_version()
if latest_version:
@@ -159,6 +159,15 @@ class EngineManager:
else:
logger.warning(f"Unable to get latest version for {engine}")
logger.info(f"Checking for updates for render engines...")
threads = []
for engine, engine_downloader in cls.downloader_classes.items():
thread = threading.Thread(target=engine_update_task, args=(engine, engine_downloader))
threads.append(thread)
thread.start()
for thread in threads: # wait to finish
thread.join()
if __name__ == '__main__':
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')