diff --git a/beat/web/backend/helpers.py b/beat/web/backend/helpers.py index ab2100a6607911fde4485e1b34b9cb39403af6b4..0fd425d659e47aba534839700bc7fdcdfaaf0602 100755 --- a/beat/web/backend/helpers.py +++ b/beat/web/backend/helpers.py @@ -26,6 +26,7 @@ ############################################################################### from django.conf import settings +from django.db import transaction from django.db.models import Count from django.db.models import Q @@ -54,6 +55,7 @@ import beat.core.algorithm from beat.core.utils import NumpyJSONEncoder +@transaction.atomic def schedule_experiment(experiment): '''Schedules the experiment for execution at the backend @@ -133,6 +135,7 @@ def schedule_experiment(experiment): #---------------------------------------------------------- +@transaction.atomic def cancel_experiment(experiment): '''Cancel the execution of the experiment on the backend @@ -556,6 +559,7 @@ def retrieve_candidate_splits_for_queue(queue): #---------------------------------------------------------- +@transaction.atomic def assign_split_to_worker(split, worker): '''Schedules the split to be executed on a given worker''' @@ -572,6 +576,7 @@ def assign_split_to_worker(split, worker): #---------------------------------------------------------- +@transaction.atomic def mark_similar_jobs_as_mirror(job): '''Mark all similar jobs as mirror, and delete their job splits''' @@ -898,6 +903,7 @@ def cancel_all_blocks(experiment): #---------------------------------------------------------- +@transaction.atomic def update_experiment(experiment): experiment = Experiment.objects.select_for_update().get(pk=experiment.pk)