diff --git a/ippisite/ippisite/admin.py b/ippisite/ippisite/admin.py index da708f9c9a83053515d11934051eed00e98f83ec..fa80270cc631d16abcdc646e8d53df7efa45bc29 100644 --- a/ippisite/ippisite/admin.py +++ b/ippisite/ippisite/admin.py @@ -46,7 +46,7 @@ class IppidbAdmin(admin.AdminSite): task = launch_test_command_caching.delay() print(task.state) messages.add_message(request, messages.INFO, "Test job launched") - return redirect("/admin/") + return redirect("/admin/ippidb/job") def launch_compound_properties_caching_view(self, request): """ @@ -57,7 +57,7 @@ class IppidbAdmin(admin.AdminSite): messages.add_message( request, messages.INFO, "Compound properties caching launched" ) - return redirect("/admin/") + return redirect("/admin/ippidb/job") def launch_drugbank_similarity_computing_view(self, request): """ @@ -68,7 +68,7 @@ class IppidbAdmin(admin.AdminSite): messages.add_message( request, messages.INFO, "DrugBank similarity computing launched" ) - return redirect("/admin/") + return redirect("/admin/ippidb/job") def launch_plots_computing_view(self, request): """ @@ -76,4 +76,4 @@ class IppidbAdmin(admin.AdminSite): """ launch_plots_computing() messages.add_message(request, messages.INFO, "Plots computing launched") - return redirect("/admin/") + return redirect("/admin/ippidb/job") diff --git a/ippisite/ippisite/decorator.py b/ippisite/ippisite/decorator.py index a66e1d0017e27fc177d0766a792dea92491b9f79..865d8bd1ae65c25bb1fec0ca775fad84da4d1fd0 100644 --- a/ippisite/ippisite/decorator.py +++ b/ippisite/ippisite/decorator.py @@ -18,10 +18,10 @@ class MonitorTask(Task): def __call__(self, *args, **kwargs): """In celery task this function call the run method, here you can set some environment variable before the run of the task""" - tasks = TaskResult.objects.filter( task_name=self.request.task, status__in=[states.STARTED, states.PENDING, states.RETRY, states.RECEIVED], + task_args=str(args), task_kwargs=str(kwargs) ) count_tasks = tasks.count() if not count_tasks: @@ -45,8 +45,12 @@ class MonitorTask(Task): super(MonitorTask, self).on_success(retval, task_id, args, kwargs) def on_failure(self, exc, task_id, args, kwargs, einfo): - self.write(std_err="".join(traceback.format_tb(einfo.tb))) super(MonitorTask, self).on_failure(exc, task_id, args, kwargs, einfo) + if isinstance(exc, AlreadyExistError): + self.update_state(state=states.REVOKED) + else: + self.update_state(state=states.FAILURE) + self.write(std_err="".join(traceback.format_tb(einfo.tb))) def update_state(self, task_id=None, state=None, meta=None, **kwargs): self.state = state