pgnotify: A python library to easily LISTEN to PostgreSQL NOTIFY notifications
Example
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:///example',
['channel1', 'channel2']):
print(notification.channel)
print(notification.payload)
Install
Installable with any python package manager from the python package index, eg:
pip install pgnotify
All the bells and whistles
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)
print(f"handling {sig.name}, 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.
Release files for pgnotify 0.1.1541411793
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pgnotify-0.1.1541411793.tar.gz | 4.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pgnotify-0.1.1541411793-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Total release size: 12.1 kB
Release files / pgnotify-0.1.1541411793.tar.gz
| Download URL | pgnotify-0.1.1541411793.tar.gz |
|---|---|
| Size | 4.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4cb8fc5fb271feb2176bde76d593fa37f7ca3af62dc30bc56b2b3a3aa0c2973a
|
|
BLAKE2b-256 checksum How to use checksums |
7c308dd54f3732bdc01020908933ca5545ffe37703e89a53d914768ede0ee695
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/0.12.5 CPython/3.7.0 Linux/4.4.0-137-generic
|
Release files / pgnotify-0.1.1541411793-py2.py3-none-any.whl
| Download URL | pgnotify-0.1.1541411793-py2.py3-none-any.whl |
|---|---|
| Size | 7.9 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
45f2fc9d94645081e0ac547aef75ce839123380765358d59a73067f02ae357ff
|
|
BLAKE2b-256 checksum How to use checksums |
f630671d26faaa7156ab339052bc2b290fc7f311e6fb3d85ed72e1d99c5a71ad
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/0.12.5 CPython/3.7.0 Linux/4.4.0-137-generic
|