Skip to main content

Easily LISTEN to PostgreSQL NOTIFY notifications

Project description

pgnotify: Easily LISTEN to PostgreSQL NOTIFY notifications

LISTEN to and process NOTIFY events with a simple for loop, like so:

    from pgnotify import await_pg_notifications

    for notification in await_pg_notifications(
            'postgresql:///nameofdatabase',
            ['channel1', 'channel2']):

        print(notification.channel)
        print(notification.payload)

You can also handle timeouts and signals, as in this more fully-fleshed example:

import signal

from pgnotify import await_pg_notifications, get_dbapi_connection

# the first parameter of the await_pg_notifications
# loop is a dbapi connection in autocommit mode
CONNECT = "postgresql:///example"

# use this convenient method to create the right connection
# from a database URL
e = get_dbapi_connection(CONNECT)

SIGNALS_TO_HANDLE = [signal.SIGINT, signal.SIGTERM]

for n in await_pg_notifications(
    e,
    ["hello", "hello2"],
    timeout=10,
    yield_on_timeout=True,
    handle_signals=SIGNALS_TO_HANDLE,
):
    # the integer code of the signal is yielded on each
    # occurrence of a handled signal
    if isinstance(n, int):
        sig = signal.Signals(n)
        if n in SIGNALS_TO_HANDLE:
            print(f"handling {sig.name}")
        print("interrupted, stopping")
        break

    # the `yield_on_timeout` option makes the
    # loop yield `None` on timeout
    elif n is None:
        print("timeout, continuing")

    # handle the actual notify occurrences here
    else:
        print((n.pid, n.channel, n.payload))

Further documentation to come.

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

pgnotify-0.1.1541160085.tar.gz (4.0 kB view details)

Uploaded Source

Built Distribution

pgnotify-0.1.1541160085-py2.py3-none-any.whl (7.6 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file pgnotify-0.1.1541160085.tar.gz.

File metadata

  • Download URL: pgnotify-0.1.1541160085.tar.gz
  • Upload date:
  • Size: 4.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.5 CPython/3.7.0 Linux/4.4.0-137-generic

File hashes

Hashes for pgnotify-0.1.1541160085.tar.gz
Algorithm Hash digest
SHA256 4fd40b06e86ccd5aad1520a7ea67a8a0b071b8188d20dbfad39182a9dbae9d66
MD5 286f056c60436f017c9c12dc994bd118
BLAKE2b-256 22ff6d3d872c1a055f86a9aa906048132026eff3fa244b388a4a8b6b39ad7ab2

See more details on using hashes here.

File details

Details for the file pgnotify-0.1.1541160085-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for pgnotify-0.1.1541160085-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 de02e28a090669acb5a0558f1f6047d6a893309fb6278dfd158f92481e797166
MD5 5369c2aa79274b40d82d45a22b40da4b
BLAKE2b-256 5d82284245d1036dab3d5d7846a6ae4c1f4f52ca9c99d4d07051bdd34f291783

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