diff --git a/src/api/api_server.py b/src/api/api_server.py index 1eab8fb..b43d826 100755 --- a/src/api/api_server.py +++ b/src/api/api_server.py @@ -535,7 +535,7 @@ def start_server(background_thread=False): EngineManager.update_all_engines() # Set up the RenderQueue object - RenderQueue.start_queue() + RenderQueue.start_queue(database_directory=server.config['UPLOAD_FOLDER']) DistributedJobManager.start() thread = threading.Thread(target=eval_loop, kwargs={'delay_sec': config.get('queue_eval_seconds', 1)}, daemon=True) diff --git a/src/render_queue.py b/src/render_queue.py index 2a081b7..7419cf8 100755 --- a/src/render_queue.py +++ b/src/render_queue.py @@ -1,4 +1,5 @@ import logging +import os from datetime import datetime from sqlalchemy import create_engine @@ -18,10 +19,8 @@ class JobNotFoundError(Exception): class RenderQueue: - engine = create_engine('sqlite:///database.db') - Base.metadata.create_all(engine) - Session = sessionmaker(bind=engine) - session = Session() + engine = None + session = None job_queue = [] maximum_renderer_instances = {'blender': 1, 'aerender': 1, 'ffmpeg': 4} last_saved_counts = {} @@ -30,7 +29,11 @@ class RenderQueue: pass @classmethod - def start_queue(cls): + def start_queue(cls, database_directory): + if not cls.engine: + cls.engine = create_engine(f"sqlite:///{os.path.join(database_directory, 'database.db')}") + Base.metadata.create_all(cls.engine) + cls.session = sessionmaker(bind=cls.engine)() cls.load_state() @classmethod