Skip to content
Snippets Groups Projects
Commit c4aeb762 authored by André Anjos's avatar André Anjos :speech_balloon:
Browse files

[backend Improve block skipping strategy

parent f41c33e2
No related branches found
No related tags found
1 merge request!194Scheduler
......@@ -548,13 +548,23 @@ class Job(models.Model):
# lock self - avoids concurrent update from scheduler/worker subsystem
Job.objects.select_for_update().filter(pk=self.pk)
# checks for the presence of output caches - if they exist, skip
# and update related blocks
# checks for the presence of output caches - if they exist and
# checksum, skip and update related blocks
if all([k.exists() for k in self.block.outputs.all()]):
self.status = Job.SKIPPED
self._cascade_updates() #to similar blocks
self.save()
return
if all([k.index_checksums() for k in self.block.outputs.all()]):
self.status = Job.SKIPPED
self.split_errors = 0
self.end_date = datetime.datetime.now()
self.save()
self._cascade_updates() #to similar blocks
self.block._update_state()
return
else:
logger.warning("Trying to make block `%s' runnable, but " \
"indexes do not checksum - waiting...", self.block)
self.split_errors += 1
self.save()
return
# else, flag it as runnable
self.runnable_date = datetime.datetime.now()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment