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)
-
Create an event.
Notes
An event is simply a dictionary: the only required field is
type. Atimestampfield will be set to the current time if not provided.
- classcelery.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)
-
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
Falseto 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
- close()
-
Close the event dispatcher.
- disable()
- enable()
- extend_buffer(other)
-
Copy the outbound buffer of another instance.
- flush(errors=True, groups=True)
-
Flush the outbound buffer.
- on_disabled=None
- on_enabled=None
- publish(type, fields, producer, blind=False, Event=<function Event>, **kwargs)
-
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
publishmethod 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.
- propertypublisher
- send(type, blind=False, utcoffset=<function utcoffset>, retry=False, retry_policy=None, Event=<function Event>, **fields)
-
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.
- classcelery.events.EventReceiver(channel, handlers=None, routing_key='#', node_id=None, app=None, queue_prefix=None, accept=None, queue_ttl=None, queue_expires=None, queue_exclusive=None, queue_durable=None)
-
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)
-
Open up a consumer capturing events.
This has to run in the main process, and it will never stop unless
EventDispatcher.should_stopis set to True, or forced viaKeyboardInterruptorSystemExit.
- propertyconnection
- event_from_message(body, localize=True, now=<built-in function time>, tzfields=operator.itemgetter('utcoffset', 'timestamp'), adjust_timestamp=<function adjust_timestamp>, CLIENT_CLOCK_SKEW=-1)
- get_consumers(Consumer, channel)
- itercapture(limit=None, timeout=None, wakeup=True)
- on_consume_ready(connection, channel, consumers, wakeup=True, **kwargs)
- process(type, event)
-
Process event by dispatching to configured handler.
- wakeup_workers(channel=None)
- celery.events.get_exchange(conn, name='celeryev')
-
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).
- celery.events.group_from(type)
-
Get the group part of an event type name.
Example
>>> group_from('task-sent') 'task'>>> group_from('custom-my-event') 'custom'
Copyright © 2017-2026 Asif Saif Uddin, core team & contributors. All rights reserved.
Celery is licensed under The BSD License (3 Clause, also known as the new BSD license). The license is an OSI approved Open Source license and is GPL-compatible.
https://docs.celeryq.dev/en/stable/reference/celery.events.html