This document describes the current stable version of Celery (4.2). For development docs, go here.


Threading primitives and utilities.

class celery.utils.threads.bgThread(name=None, **kwargs)[source]

Background service thread.

on_crash(msg, *fmt, **kwargs)[source]

Method representing the thread’s activity.

You may override this method in a subclass. The standard run() method invokes the callable object passed to the object’s constructor as the target argument, if any, with sequential and keyword arguments taken from the args and kwargs arguments, respectively.


Graceful shutdown.

class celery.utils.threads.Local[source]

Local object.


alias of celery.utils.threads._LocalStack

class celery.utils.threads.LocalManager(locals=None, ident_func=None)[source]

Local objects cannot manage themselves.

For that you need a local manager. You can pass a local manager multiple locals or add them later by appending them to manager.locals. Every time the manager cleans up, it will clean up all the data left in the locals for this context.

The ident_func parameter can be added to override the default ident function for the wrapped locals.


Manually clean up the data in the locals for this context.

Call this at the end of the request or use make_middleware().


Return context identifier.

This is the indentifer the local objects use internally for this context. You cannot override this method to change the behavior but use it to link other context local objects (such as SQLAlchemy’s scoped sessions) to the Werkzeug locals.

celery.utils.threads.get_ident() → integer

Return a non-zero integer that uniquely identifies the current thread amongst other threads that exist simultaneously. This may be used to identify per-thread resources. Even though on some platforms threads identities may appear to be allocated consecutive numbers starting at 1, this behavior should not be relied upon, and the number should be seen purely as a magic cookie. A thread’s identity may be reused for another thread after it exits.

celery.utils.threads.default_socket_timeout(*args, **kwds)[source]

Context temporarily setting the default socket timeout.