Spooler

class uwsgiconf.options.spooler.Spooler(*args, **kwargs)

Spooler.

Note

Supported on: Perl, Python, Ruby.

Note

Be sure the spooler plugin is loaded in your instance, but generally it is built in by default.

The Spooler is a queue manager built into uWSGI that works like a printing/mail system. You can enqueue massive sending of emails, image processing, video encoding, etc. and let the spooler do the hard work in background while your users get their requests served by normal workers.

http://uwsgi-docs.readthedocs.io/en/latest/Spooler.html

set_basic_params(*, touch_reload: Union[str, List[str]] = None, quiet: bool = None, process_count: int = None, max_tasks: int = None, order_tasks: int = None, harakiri: int = None, change_dir: str = None, poll_interval: int = None, signal_as_task: bool = None, cheap: bool = None, base_dir: str = None)
Parameters:
  • touch_reload – reload spoolers if the specified file is modified/touched
  • quiet – Do not log spooler related messages.
  • process_count – Set the number of processes for spoolers.
  • max_tasks – Set the maximum number of tasks to run before recycling a spooler (to help alleviate memory leaks).
  • order_tasks – Try to order the execution of spooler tasks (uses scandir instead of readdir).
  • harakiri – Set harakiri timeout for spooler tasks.
  • change_dir – chdir() to specified directory before each spooler task.
  • poll_interval – Spooler poll frequency in seconds. Default: 30.
  • signal_as_task – Treat signal events as tasks in spooler. To be used with spooler-max-tasks. If enabled spooler will treat signal events as task. Run signal handler will also increase the spooler task count.
  • cheap – Use spooler cheap mode.
  • base_dir – Base directory to prepend to work_dir argument of .add().
add(work_dir: Union[str, List[str]], *, external: bool = False)

Run a spooler on the specified directory.

Parameters:
  • work_dir

    Spooler working directory path or it’s name if base_dir argument of spooler.set_basic_params() is set.

    Note

    Placeholders can be used to build paths, e.g.: {project_runtime_dir}/spool/ See Section.project_name and Section.runtime_dir.

  • external – map spoolers requests to a spooler directory managed by an external instance