Skip to content
Back to top
View this page

# pyrate_limiter.buckets.mp_bucket module

multiprocessing In-memory Bucket using a multiprocessing.Manager.ListProxy and a multiprocessing.Lock.

class pyrate_limiter.buckets.mp_bucket.MultiprocessBucket(rates, items, mp_lock)

  Bases: `InMemoryBucket`

  classmethod init(rates)

    Creates a single ListProxy so that this bucket can be shared across multiple processes.

  items
  leak(current_timestamp=None)

    leaking bucket - removing items that are outdated

    Return type:

      `int`

  limiter_lock()

    An additional lock to be used by Limiter in-front of the thread lock. Intended for multiprocessing environments where a thread lock is insufficient.

  mp_lock
  put(item)

    Put an item (typically the current time) in the bucket return true if successful, otherwise false

    Return type:

      `bool`