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.9 (2025-07-16)

SELECT 1 only if we haven't seen any events

No need to wait for a connection closure

v0.0.8 (2025-05-25)

  • Support python 3.13

v0.0.7 (2024-09-07)

v0.0.6 (2022-11-02)

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.9.tar.gz (8.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

asyncpg_listen-0.0.9-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: asyncpg-listen-0.0.9.tar.gz
  • Upload date:
  • Size: 8.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.13

File hashes

Hashes for asyncpg-listen-0.0.9.tar.gz
Algorithm Hash digest
SHA256 f94c4752f7ca1077eaaad0fa2c08fcef4990eaae81a61c423683a722ca3f3a33
MD5 9c1cfe910361e7e2e3e0e0f6b622aa76
BLAKE2b-256 31d70491b438a8d97128e52441d5dc09c4a975b662da8e05da53974146fce939

See more details on using hashes here.

File details

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

File metadata

  • Download URL: asyncpg_listen-0.0.9-py3-none-any.whl
  • Upload date:
  • Size: 5.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.13

File hashes

Hashes for asyncpg_listen-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 44a4fe25a589de71bb8822aa3db6dde6e32d7f95c8e6b674be037473ca1f2775
MD5 76d3476a09888c8c9b9ce1aaa5b38d31
BLAKE2b-256 e5215fe6b94db1f34d84590c7e997d76d11d11af87c6f4048dfd6f4c97325e4f

See more details on using hashes here.

Supported by

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