This document describes the current stable version of Celery (4.4). For development docs, go here.
celery.events
¶
Monitoring Event Receiver+Dispatcher.
Events is a stream of messages sent for certain actions occurring
in the worker (and clients if task_send_sent_event
is enabled), used for monitoring purposes.
-
celery.events.
Event
(type, _fields=None, __dict__=<class 'dict'>, __now__=<built-in function time>, **fields)[source]¶ Create an event.
Notes
An event is simply a dictionary: the only required field is
type
. Atimestamp
field will be set to the current time if not provided.
-
class
celery.events.
EventDispatcher
(connection=None, hostname=None, enabled=True, channel=None, buffer_while_offline=True, app=None, serializer=None, groups=None, delivery_mode=1, buffer_group=None, buffer_limit=24, on_send_buffered=None)[source]¶ Dispatches event messages.
- Parameters
connection (kombu.Connection) – Connection to the broker.
hostname (str) – Hostname to identify ourselves as, by default uses the hostname returned by
anon_nodename()
.groups (Sequence[str]) – List of groups to send events for.
send()
will ignore send requests to groups not in this list. If this isNone
, all events will be sent. Example groups include"task"
and"worker"
.enabled (bool) – Set to
False
to not actually publish any events, makingsend()
a no-op.channel (kombu.Channel) – Can be used instead of connection to specify an exact channel to use when sending events.
buffer_while_offline (bool) – If enabled events will be buffered while the connection is down.
flush()
must be called as soon as the connection is re-established.
Note
You need to
close()
this after use.-
DISABLED_TRANSPORTS
= {'sql'}¶
-
app
= None¶
-
on_disabled
= None¶
-
on_enabled
= None¶
-
publish
(type, fields, producer, blind=False, Event=<function Event>, **kwargs)[source]¶ Publish event using custom
Producer
.- Parameters
type (str) – Event type name, with group separated by dash (-). fields: Dictionary of event fields, must be json serializable.
producer (kombu.Producer) – Producer instance to use: only the
publish
method will be called.retry (bool) – Retry in the event of connection failure.
retry_policy (Mapping) – Map of custom retry policy options. See
ensure()
.blind (bool) – Don’t set logical clock value (also don’t forward the internal logical clock).
Event (Callable) – Event type used to create event. Defaults to
Event()
.utcoffset (Callable) – Function returning the current utc offset in hours.
-
property
publisher
¶
-
send
(type, blind=False, utcoffset=<function utcoffset>, retry=False, retry_policy=None, Event=<function Event>, **fields)[source]¶ Send event.
- Parameters
type (str) – Event type name, with group separated by dash (-).
retry (bool) – Retry in the event of connection failure.
retry_policy (Mapping) – Map of custom retry policy options. See
ensure()
.blind (bool) – Don’t set logical clock value (also don’t forward the internal logical clock).
Event (Callable) – Event type used to create event, defaults to
Event()
.utcoffset (Callable) – unction returning the current utc offset in hours.
**fields (Any) – Event fields – must be json serializable.
-
class
celery.events.
EventReceiver
(channel, handlers=None, routing_key='#', node_id=None, app=None, queue_prefix=None, accept=None, queue_ttl=None, queue_expires=None)[source]¶ Capture events.
- Parameters
connection (kombu.Connection) – Connection to the broker.
handlers (Mapping[Callable]) – Event handlers. This is a map of event type names and their handlers. The special handler “*” captures all events that don’t have a handler.
-
app
= None¶
-
capture
(limit=None, timeout=None, wakeup=True)[source]¶ Open up a consumer capturing events.
This has to run in the main process, and it will never stop unless
EventDispatcher.should_stop
is set to True, or forced viaKeyboardInterrupt
orSystemExit
.
-
property
connection
¶
-
celery.events.
get_exchange
(conn, name='celeryev')[source]¶ Get exchange used for sending events.
- Parameters
conn (kombu.Connection) – Connection used for sending/receiving events.
name (str) – Name of the exchange. Default is
celeryev
.
Note
The event type changes if Redis is used as the transport (from topic -> fanout).