def send_to_spooler(message=None, **kwargs):
    """Send data to the The uWSGI Spooler. Also known as spool().

    .. warning:: Either `message` argument should contain a dictionary
        this message dictionary will be constructed from `kwargs`.

    :param dict[bytes, bytes] message: The message to spool. Keys and values are bytes.
    :param dict kwargs:

        Possible kwargs (these are also reserved `message` argument dictionary keys):

            * spooler: The spooler (id or directory) to use.
                Specify the ABSOLUTE path of the spooler that has to manage this task

            * priority: Number. The priority of the message. Larger - less important.

                .. warning:: This works only if you enable `order_tasks` option in `spooler.set_basic_params()`.

                This will be the subdirectory in the spooler directory in which the task will be placed,
                you can use that trick to give a good-enough prioritization to tasks.

                .. note:: This is for systems with few resources. For better approach use multiple spoolers.

            * at: Unix time at which the task must be executed.
                The task will not be run until the 'at' time is passed.

            * body: A binary body to add to the message,
                in addition to the message dictionary itself.
                Use this key for objects bigger than 64k, the blob will be appended
                to the serialized uwsgi packet and passed back t
                o the spooler function as the 'body' argument.

    :rtype: str|None
    """
