Skip to main content

Helps to use PostgreSQL listen/notify with asyncpg

Project description

asyncpg-listen

This library simplifies usage of listen/notify with asyncpg:

  1. Handles loss of a connection
  2. Simplifies notifications processing from multiple channels
  3. Setups a timeout for receiving a notification
  4. Allows to receive all notifications/only last notification depending on ListenPolicy.
import asyncio
import asyncpg
import asyncpg_listen


async def handle_notifications(notification: asyncpg_listen.NotificationOrTimeout) -> None:
    print(f"{notification} has been received")


async def main():
    listener = asyncpg_listen.NotificationListener(asyncpg_listen.connect_func(user="postgres"))
    listener_task = asyncio.create_task(
        listener.run(
            {"simple": handle_notifications},
            policy=asyncpg_listen.ListenPolicy.LAST,
            notification_timeout=5
        )
    )

    await asyncio.sleep(1)

    connection = await asyncpg.connect(user="postgres")
    try:
        for i in range(42):
            await connection.execute(f"NOTIFY simple, '{i}'")
    finally:
        await connection.close()

    await asyncio.sleep(1)

    listener_task.cancel()


asyncio.run(main())

v0.0.5 (2022-05-23)

v0.0.4 (2022-01-24)

v0.0.3 (2022-01-23)

v0.0.2 (2021-11-02)

v0.0.1 (2021-10-27)

  • A first version

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

asyncpg-listen-0.0.5.tar.gz (5.2 kB view details)

Uploaded Source

Built Distribution

asyncpg_listen-0.0.5-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

Details for the file asyncpg-listen-0.0.5.tar.gz.

File metadata

  • Download URL: asyncpg-listen-0.0.5.tar.gz
  • Upload date:
  • Size: 5.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.10.4

File hashes

Hashes for asyncpg-listen-0.0.5.tar.gz
Algorithm Hash digest
SHA256 f2df38b4beb89a66de17752f8dd8c09f3c9e0f4add3f068f9bd074c7a680eaa9
MD5 df1d6264af19b63c06aad0d0027d63eb
BLAKE2b-256 1ea606839dd46db813935a163412e0dfe483e816167711d7f36cb35b2fe19a1d

See more details on using hashes here.

File details

Details for the file asyncpg_listen-0.0.5-py3-none-any.whl.

File metadata

File hashes

Hashes for asyncpg_listen-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 5a4998b63bf27d6b069d81d88b33776e2086552a1d952974a806bff1feddcc23
MD5 d7ce196303fc26fbafd8c28f2fd3029e
BLAKE2b-256 9d6156af49dcc6509b0c1be47def0426915d1cdc4ff7b65fc70f867fa47041b9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page