Working with Redis queues

Working with Redis queues

Working with Redis queues

QueueHandler and QueueListener classes are provided to facilitate interfacing with Redis.

class logutils.redis.RedisQueueHandler(key='python.logging', redis=None, limit=0)

A QueueHandler implementation which pushes pickled records to a Redis queue using a specified key.

Parameters:
  • key – The key to use for the queue. Defaults to “python.logging”.
  • redis – If specified, this instance is used to communicate with a Redis instance.
  • limit – If specified, the queue is restricted to have only this many elements.
enqueue(record)

Enqueue a record.

The base implementation uses put_nowait(). You may want to override this method if you want to use blocking, timeouts or custom queue implementations.

Parameters:record – The record to enqueue.
class logutils.redis.RedisQueueListener(*handlers, **kwargs)

A QueueListener implementation which fetches pickled records from a Redis queue using a specified key.

Parameters:
  • key – The key to use for the queue. Defaults to “python.logging”.
  • redis – If specified, this instance is used to communicate with a Redis instance.
dequeue(block)

Dequeue and return a record.

enqueue_sentinel()

Writes a sentinel to the queue to tell the listener to quit. This implementation uses put_nowait(). You may want to override this method if you want to use timeouts or work with custom queue implementations.