Note that maxtasksperchild is new in 2.7.

This commit is contained in:
Georg Brandl 2010-10-17 06:21:30 +00:00
parent c9a6320b00
commit 92e6972c53
1 changed files with 12 additions and 11 deletions

View File

@ -1543,20 +1543,21 @@ with the :class:`Pool` class.
*initializer* is not ``None`` then each worker process will call *initializer* is not ``None`` then each worker process will call
``initializer(*initargs)`` when it starts. ``initializer(*initargs)`` when it starts.
*maxtasksperchild* is the number of tasks a worker process can complete .. versionadded:: 2.7
before it will exit and be replaced with a fresh worker process, to enable *maxtasksperchild* is the number of tasks a worker process can complete
unused resources to be freed. The default *maxtasksperchild* is None, which before it will exit and be replaced with a fresh worker process, to enable
means worker processes will live as long as the pool. unused resources to be freed. The default *maxtasksperchild* is None, which
means worker processes will live as long as the pool.
.. note:: .. note::
Worker processes within a :class:`Pool` typically live for the complete Worker processes within a :class:`Pool` typically live for the complete
duration of the Pool's work queue. A frequent pattern found in other duration of the Pool's work queue. A frequent pattern found in other
systems (such as Apache, mod_wsgi, etc) to free resources held by systems (such as Apache, mod_wsgi, etc) to free resources held by
workers is to allow a worker within a pool to complete only a set workers is to allow a worker within a pool to complete only a set
amount of work before being exiting, being cleaned up and a new amount of work before being exiting, being cleaned up and a new
process spawned to replace the old one. The *maxtasksperchild* process spawned to replace the old one. The *maxtasksperchild*
argument to the :class:`Pool` exposes this ability to the end user. argument to the :class:`Pool` exposes this ability to the end user.
.. method:: apply(func[, args[, kwds]]) .. method:: apply(func[, args[, kwds]])