Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

aiodiskqueue

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

aiodiskqueue

Persistent queue for Python AsyncIO.

  • 0.1.2
  • Source
  • PyPI
  • Socket score

Maintainers
1

============ aiodiskqueue

Persistent queue for Python AsyncIO.

|release| |python| |tests| |codecov| |docs| |pre-commit| |Code style: black|

Description

This library provides a persistent FIFO queue for Python AsyncIO:

  • Queue content persist a process restart
  • Feature parity with Python's asyncio.Queue <https://docs.python.org/3/library/asyncio-queue.html#queue>_
  • Similar API to Python's asyncio.Queue <https://docs.python.org/3/library/asyncio-queue.html#queue>_
  • Sane logging
  • Type hints
  • Fully tested
  • Supports different storage engines and can be extended with custom storage engines

Usage

Here is a basic example on how to use the queue:

.. code:: python

import asyncio
from aiodiskqueue import Queue

async def main():
    q = await Queue.create("example_queue.sqlite")
    await q.put("some item")
    item = await q.get()
    print(item)

asyncio.run(main())

Please see the examples folder for more usage examples.

Installation

You can install this library directly from PyPI with the following command:

.. code:: shell

pip install aiodiskqueue

Logging

The name of the logger for all logging by this library is: aiodiskqueue.

Storage Engines

aiodiskqueue support different storage engines. The default engine is DbmEngine.

We measured the throughput for a typical load scenario (5 producers, 1 consumer) with each storage engine:

.. image:: https://imgpile.com/images/9luzXk.png :width: 800 :alt: Measurements

  • DbmEngine: Consistent throughput at low and high volumes and about 3 x faster then Sqlite
  • PickledList: Very fast at low volumes, but does not scale well
  • SqliteEngine: Consistent throughput at low and high volumes. Relatively slow.

The scripts for running the measurements and generating this chart can be found in the measurements folder.

.. |release| image:: https://img.shields.io/pypi/v/aiodiskqueue?label=release :target: https://pypi.org/project/aiodiskqueue/

.. |python| image:: https://img.shields.io/pypi/pyversions/aiodiskqueue :target: https://pypi.org/project/aiodiskqueue/

.. |tests| image:: https://github.com/ErikKalkoken/aiodiskqueue/actions/workflows/main.yml/badge.svg :target: https://github.com/ErikKalkoken/aiodiskqueue/actions

.. |codecov| image:: https://codecov.io/gh/ErikKalkoken/aiodiskqueue/branch/main/graph/badge.svg?token=V43h7hl1Te :target: https://codecov.io/gh/ErikKalkoken/aiodiskqueue

.. |docs| image:: https://readthedocs.org/projects/aiodiskqueue/badge/?version=latest :target: https://aiodiskqueue.readthedocs.io/en/latest/?badge=latest

.. |pre-commit| image:: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white :target: https://github.com/pre-commit/pre-commit

.. |Code style: black| image:: https://img.shields.io/badge/code%20style-black-000000.svg :target: https://github.com/psf/black

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc