mirror of
https://github.com/blw1138/Zordon.git
synced 2025-12-17 16:58:12 +00:00
Blender image sequences now generate a preview mp4 on completion
This commit is contained in:
@@ -7,8 +7,7 @@ import requests
|
||||
from sqlalchemy import create_engine, Column, String, Integer
|
||||
from sqlalchemy.orm import sessionmaker
|
||||
|
||||
from .render_workers.base_worker import RenderStatus
|
||||
from .scheduled_job import ScheduledJob, Base
|
||||
from .render_workers.base_worker import RenderStatus, BaseRenderWorker, Base
|
||||
|
||||
logger = logging.getLogger()
|
||||
|
||||
@@ -45,7 +44,6 @@ class RenderQueue:
|
||||
Base.metadata.create_all(engine)
|
||||
Session = sessionmaker(bind=engine)
|
||||
session = Session()
|
||||
ScheduledJob.register_user_events()
|
||||
job_queue = []
|
||||
maximum_renderer_instances = {'blender': 1, 'aerender': 1, 'ffmpeg': 4}
|
||||
hostname = None
|
||||
@@ -62,7 +60,7 @@ class RenderQueue:
|
||||
def add_to_render_queue(cls, render_job, force_start=False, client=None):
|
||||
|
||||
if not client or render_job.client == cls.hostname:
|
||||
logger.debug('Adding priority {} job to render queue: {}'.format(render_job.priority, render_job.worker_object))
|
||||
logger.debug('Adding priority {} job to render queue: {}'.format(render_job.priority, render_job))
|
||||
render_job.client = cls.hostname
|
||||
cls.job_queue.append(render_job)
|
||||
if force_start:
|
||||
@@ -89,7 +87,7 @@ class RenderQueue:
|
||||
|
||||
@classmethod
|
||||
def jobs_with_status(cls, status, priority_sorted=False):
|
||||
found_jobs = [x for x in cls.all_jobs() if x.render_status() == status]
|
||||
found_jobs = [x for x in cls.all_jobs() if x.status == status]
|
||||
if priority_sorted:
|
||||
found_jobs = sorted(found_jobs, key=lambda a: a.priority, reverse=False)
|
||||
return found_jobs
|
||||
@@ -103,7 +101,7 @@ class RenderQueue:
|
||||
|
||||
@classmethod
|
||||
def clear_history(cls):
|
||||
to_remove = [x for x in cls.all_jobs() if x.render_status() in [RenderStatus.CANCELLED,
|
||||
to_remove = [x for x in cls.all_jobs() if x.status in [RenderStatus.CANCELLED,
|
||||
RenderStatus.COMPLETED, RenderStatus.ERROR]]
|
||||
for job_to_remove in to_remove:
|
||||
cls.delete_job(job_to_remove)
|
||||
@@ -141,15 +139,14 @@ class RenderQueue:
|
||||
|
||||
@classmethod
|
||||
def start_job(cls, job):
|
||||
logger.info('Starting {}render: {} - Priority {}'.format('scheduled ' if job.scheduled_start else '', job.name,
|
||||
job.priority))
|
||||
logger.info(f'Starting render: {job.name} - Priority {job.priority}')
|
||||
job.start()
|
||||
|
||||
@classmethod
|
||||
def cancel_job(cls, job):
|
||||
logger.info(f'Cancelling job ID: {job.id}')
|
||||
job.stop()
|
||||
return job.render_status() == RenderStatus.CANCELLED
|
||||
return job.status == RenderStatus.CANCELLED
|
||||
|
||||
@classmethod
|
||||
def delete_job(cls, job):
|
||||
|
||||
Reference in New Issue
Block a user