def on_failure(self, exc, task_id, args, kwargs, einfo):
        """
        Update the failed task as follows:

            1. pull out the ExportTask
            2. update the task status and finish time
            3. create an export task exception
            4. save the export task with the task exception
            5. run ExportTaskErrorHandler if the run should be aborted
               - this is only for initial tasks on which subsequent export tasks depend
        """
        from tasks.models import ExportTask, ExportTaskException, ExportRun
        logger.debug('Task name: {0} failed, {1}'.format(self.name, einfo))
        task = ExportTask.objects.get(celery_uid=task_id)
        task.status = 'FAILED'
        task.finished_at = timezone.now()
        task.save()
        exception = cPickle.dumps(einfo)
        ete = ExportTaskException(task=task, exception=exception)
        ete.save()
        if self.abort_on_error:
            run = ExportRun.objects.get(tasks__celery_uid=task_id)
            run.status = 'FAILED'
            run.finished_at = timezone.now()
            run.save()
            error_handler = ExportTaskErrorHandler()
            # run error handler
            stage_dir = kwargs['stage_dir']
            error_handler.si(run_uid=str(run.uid), task_id=task_id, stage_dir=stage_dir).delay()
    def on_failure(self, exc, task_id, args, kwargs, einfo):
        """
        Update the failed task as follows:

            1. pull out the ExportTask
            2. update the task status and finish time
            3. create an export task exception
            4. save the export task with the task exception
            5. run ExportTaskErrorHandler if the run should be aborted
               - this is only for initial tasks on which subsequent export tasks depend
        """
        from tasks.models import ExportTask, ExportTaskException, ExportRun

        logger.debug("Task name: {0} failed, {1}".format(self.name, einfo))
        task = ExportTask.objects.get(celery_uid=task_id)
        task.status = "FAILED"
        task.finished_at = timezone.now()
        task.save()
        exception = cPickle.dumps(einfo)
        ete = ExportTaskException(task=task, exception=exception)
        ete.save()
        if self.abort_on_error:
            run = ExportRun.objects.get(tasks__celery_uid=task_id)
            run.status = "FAILED"
            run.finished_at = timezone.now()
            run.save()
            error_handler = ExportTaskErrorHandler()
            # run error handler
            stage_dir = kwargs["stage_dir"]
            error_handler.si(run_uid=str(run.uid), task_id=task_id, stage_dir=stage_dir).delay()
 def on_failure(self, exc, task_id, args, kwargs, einfo):
     from tasks.models import ExportTask, ExportTaskException, ExportRun
     logger.debug('Task name: {0} failed, {1}'.format(self.name, einfo))
     task = ExportTask.objects.get(celery_uid=task_id)
     task.status = 'FAILED'
     task.finished_at = timezone.now()
     task.save()
     exception = cPickle.dumps(einfo)
     ete = ExportTaskException(task=task, exception=exception)
     ete.save()
     if self.abort_on_error:
         run = ExportRun.objects.get(tasks__celery_uid=task_id)
         run.status = 'FAILED'
         run.finished_at = timezone.now()
         run.save()
         error_handler = ExportTaskErrorHandler()
         # run error handler
         stage_dir = kwargs['stage_dir']
         error_handler.si(run_uid=str(run.uid), task_id=task_id, stage_dir=stage_dir).delay()
Example #4
0
 def on_failure(self, exc, task_id, args, kwargs, einfo):
     from tasks.models import ExportTask, ExportTaskException, ExportRun
     logger.debug('Task name: {0} failed, {1}'.format(self.name, einfo))
     task = ExportTask.objects.get(celery_uid=task_id)
     task.status = 'FAILED'
     task.finished_at = timezone.now()
     task.save()
     exception = cPickle.dumps(einfo)
     ete = ExportTaskException(task=task, exception=exception)
     ete.save()
     if self.abort_on_error:
         run = ExportRun.objects.get(tasks__celery_uid=task_id)
         run.status = 'FAILED'
         run.finished_at = timezone.now()
         run.save()
         error_handler = ExportTaskErrorHandler()
         # run error handler
         stage_dir = kwargs['stage_dir']
         error_handler.si(run_uid=str(run.uid),
                          task_id=task_id,
                          stage_dir=stage_dir).delay()