Rename RenderManager to RenderQueue

This commit is contained in:
Brett Williams
2022-10-25 11:34:35 -07:00
parent b2a6d0e79e
commit 3ee3dfd4e2
2 changed files with 66 additions and 46 deletions

View File

@@ -16,8 +16,8 @@ JSON_FILE = 'server_state.json'
#todo: move history to sqlite db
class RenderManager:
render_queue = []
class RenderQueue:
job_queue = []
render_clients = []
maximum_renderer_instances = {'Blender': 2, 'After Effects': 1, 'ffmpeg': 4}
host_name = None
@@ -36,7 +36,7 @@ class RenderManager:
if not client or render_job.client == cls.host_name:
logger.debug('Adding priority {} job to render queue: {}'.format(render_job.priority, render_job.render))
render_job.client = cls.host_name
cls.render_queue.append(render_job)
cls.job_queue.append(render_job)
if force_start:
cls.start_job(render_job)
else:
@@ -57,7 +57,7 @@ class RenderManager:
@classmethod
def jobs_with_status(cls, status, priority_sorted=False, include_archived=True):
found_jobs = [x for x in cls.render_queue if x.render_status() == status]
found_jobs = [x for x in cls.job_queue if x.render_status() == status]
if not include_archived:
found_jobs = [x for x in found_jobs if not x.archived]
if priority_sorted:
@@ -66,13 +66,13 @@ class RenderManager:
@classmethod
def job_with_id(cls, job_id):
found_job = next((x for x in cls.render_queue if x.id == job_id), None)
found_job = next((x for x in cls.job_queue if x.id == job_id), None)
return found_job
@classmethod
def clear_history(cls):
to_remove = [x for x in cls.render_queue if x.render_status() in [RenderStatus.CANCELLED,
RenderStatus.COMPLETED, RenderStatus.ERROR]]
to_remove = [x for x in cls.job_queue if x.render_status() in [RenderStatus.CANCELLED,
RenderStatus.COMPLETED, RenderStatus.ERROR]]
for x in to_remove:
x.archived = True
cls.save_state()
@@ -118,7 +118,7 @@ class RenderManager:
new_job.render.status = RenderStatus.CANCELLED
# finally add back to render queue
cls.render_queue.append(new_job)
cls.job_queue.append(new_job)
cls.last_saved_counts = cls.job_counts()
@@ -128,7 +128,7 @@ class RenderManager:
try:
logger.debug("Saving Render History")
output = {'timestamp': datetime.now().isoformat(),
'jobs': [json.loads(j.json()) for j in cls.render_queue],
'jobs': [json.loads(j.json()) for j in cls.job_queue],
'clients': cls.render_clients}
output_path = json_path or JSON_FILE
with open(output_path, 'w') as f:
@@ -209,7 +209,7 @@ class RenderManager:
@classmethod
def all_jobs(cls):
all_jobs = [x for x in cls.render_queue if not x.archived]
all_jobs = [x for x in cls.job_queue if not x.archived]
return all_jobs
@classmethod