def insert_runner(fun, args=None, kwargs=None, queue=None, backend=None):
    '''
    Insert a reference to a runner into the queue so that it can be run later.

    fun
        The runner function that is going to be run

    args
        list or comma-seperated string of args to send to fun

    kwargs
        dictionary of keyword arguments to send to fun

    queue
        queue to insert the runner reference into

    backend
        backend that to use for the queue

    CLI Example:

    .. code-block:: bash

        salt-run queue.insert_runner test.stdout_print
        salt-run queue.insert_runner event.send test_insert_runner kwargs='{"data": {"foo": "bar"}}'

    '''
    if args is None:
        args = []
    elif isinstance(args, six.string_types):
        args = args.split(',')
    if kwargs is None:
        kwargs = {}
    queue_kwargs = __get_queue_opts(queue=queue, backend=backend)
    data = {'fun': fun, 'args': args, 'kwargs': kwargs}
    return insert(items=data, **queue_kwargs)
Insert a reference to a runner into the queue so that it can be run later.

    fun
        The runner function that is going to be run

    args
        list or comma-seperated string of args to send to fun

    kwargs
        dictionary of keyword arguments to send to fun

    queue
        queue to insert the runner reference into

    backend
        backend that to use for the queue

    CLI Example:

    .. code-block:: bash

        salt-run queue.insert_runner test.stdout_print
        salt-run queue.insert_runner event.send test_insert_runner kwargs='{"data": {"foo": "bar"}}'