mirror of
https://github.com/blw1138/Zordon.git
synced 2025-12-17 16:58:12 +00:00
Make engine updating multithreaded
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import shutil
|
import shutil
|
||||||
|
import threading
|
||||||
|
|
||||||
from src.engines.blender.blender_downloader import BlenderDownloader
|
from src.engines.blender.blender_downloader import BlenderDownloader
|
||||||
from src.engines.blender.blender_engine import Blender
|
from src.engines.blender.blender_engine import Blender
|
||||||
@@ -147,8 +148,7 @@ class EngineManager:
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def update_all_engines(cls):
|
def update_all_engines(cls):
|
||||||
logger.info(f"Checking for updates for render engines...")
|
def engine_update_task(engine, engine_downloader):
|
||||||
for engine, engine_downloader in cls.downloader_classes.items():
|
|
||||||
logger.debug(f"Checking for updates to {engine}")
|
logger.debug(f"Checking for updates to {engine}")
|
||||||
latest_version = engine_downloader.find_most_recent_version()
|
latest_version = engine_downloader.find_most_recent_version()
|
||||||
if latest_version:
|
if latest_version:
|
||||||
@@ -159,6 +159,15 @@ class EngineManager:
|
|||||||
else:
|
else:
|
||||||
logger.warning(f"Unable to get latest version for {engine}")
|
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__':
|
if __name__ == '__main__':
|
||||||
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
|
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
|
||||||
|
|||||||
Reference in New Issue
Block a user