diff --git a/brender/server/application/modules/jobs/__init__.py b/brender/server/application/modules/jobs/__init__.py index 2376390199f72ddf01e6204a6e77646ca411db5b..8c035736da47c7175e886fb6f3b4ff40311bd5d3 100644 --- a/brender/server/application/modules/jobs/__init__.py +++ b/brender/server/application/modules/jobs/__init__.py @@ -137,7 +137,7 @@ class JobListApi(Resource): if job.status == 'running': self.stop(job_id) - tasks = Task.query.filter_by(job_id=job_id) + tasks = db.session.query(Task).filter(Task.job_id == job_id, Task.status.notin_(['finished','failed'])) best_managers = filter(lambda m : m.total_workers == -1, app.config['MANAGERS']) if best_managers: diff --git a/brender/server/application/modules/tasks/__init__.py b/brender/server/application/modules/tasks/__init__.py index 48f9de3cd2b9873f87178988300cf0dd4651df82..12f7e068dc33af64f0fbacd594b0e18bd54c9e1f 100644 --- a/brender/server/application/modules/tasks/__init__.py +++ b/brender/server/application/modules/tasks/__init__.py @@ -352,6 +352,10 @@ class TaskApi(Resource): # if task.current_frame == job.frame_end: # job.status = 'finished' db.session.add(job) + if task.chunk_end > job.current_frame: + job.current_frame = task.chunk_end + db.session.add(job) + db.session.commit() Thread(target=TaskApi.dispatch_tasks).start()