'Apply this task asynchronously.
Arguments:
args (Tuple): Partial args to be prepended to the existing args.
kwargs (Dict): Partial kwargs to be merged with existing kwargs.
options (Dict): Partial options to be merged
with existing options.
Returns:
~@AsyncResult: promise of future evaluation.
See also:
:meth:`~@Task.apply_async` and the :ref:`guide-calling` guide.'

def apply_async(self, args=(), kwargs={}, route_name=None, **options):

    try:
        _apply = self._apply_async
    except IndexError:
        return
    if (args or kwargs or options):
        (args, kwargs, options) = self._merge(args, kwargs, options)
    else:
        (args, kwargs, options) = (self.args, self.kwargs, self.options)
    return _apply(args, kwargs, **options)
