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.
备注
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)[源代码]¶
Dispatches event messages.
- 参数:
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.
备注
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)[源代码]¶
Publish event using custom
Producer
.- 参数:
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)[源代码]¶
Send event.
- 参数:
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)[源代码]¶
Capture events.
- 参数:
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_stop
is set to True, or forced viaKeyboardInterrupt
orSystemExit
.
- property connection¶
- celery.events.get_exchange(conn, name='celeryev')[源代码]¶
Get exchange used for sending events.
- 参数:
conn (kombu.Connection) -- Connection used for sending/receiving events.
name (str) -- Name of the exchange. Default is
celeryev
.
备注
The event type changes if Redis is used as the transport (from topic -> fanout).