def METHOD_NAME(self, body):
    """
    Import and run code for a task e.g.,
    body = {
        'args': [8],
        'callbacks': [{
            'args': [],
            'kwargs': {}
            'task': u'awx.main.tasks.system.handle_work_success'
        }],
        'errbacks': [{
            'args': [],
            'kwargs': {},
            'task': 'awx.main.tasks.system.handle_work_error'
        }],
        'kwargs': {},
        'task': u'awx.main.tasks.jobs.RunProjectUpdate'
    }
    """
    settings.__clean_on_fork__()
    result = None
    try:
        result = self.run_callable(body)
    except Exception as exc:
        result = exc
        try:
            if getattr(exc, 'is_awx_task_error', False):
                # Error caused by user / tracked in job output
                logger.warning("{}".format(exc))
            else:
                task = body['task']
                args = body.get('args', [])
                kwargs = body.get('kwargs', {})
                logger.exception('Worker failed to run task {}(*{}, **{}'.format(task, args, kwargs))
        except Exception:
            # It's fairly critical that this code _not_ raise exceptions on logging
            # If you configure external logging in a way that _it_ fails, there's
            # not a lot we can do here; sys.stderr.write is a final hail mary
            _, _, tb = sys.exc_info()
            traceback.print_tb(tb)
        for callback in body.get('errbacks', []) or []:
            callback['uuid'] = body['uuid']
            self.METHOD_NAME(callback)
    finally:
        # It's frustrating that we have to do this, but the python k8s
        # client leaves behind cacert files in /tmp, so we must clean up
        # the tmpdir per-dispatcher process every time a new task comes in
        try:
            kube_config._cleanup_temp_files()
        except Exception:
            logger.exception('failed to cleanup k8s client tmp files')
    for callback in body.get('callbacks', []) or []:
        callback['uuid'] = body['uuid']
        self.METHOD_NAME(callback)
    return result