Utility function to run a PostgreSQL query with SQLAlchemy, terminating any queries that block it
Project description
pg-force-execute
Utility function to run a PostgreSQL query with SQLAlchemy, terminating any queries that continue to block it after a configurable delay.
Installation
pip install pg-force-execute
Usage
import datetime
import sqlalchemy as sa
from pg_force_execute import pg_force_execute
# Run postgresql locally should allow the below to run
# docker run --rm -it -e POSTGRES_HOST_AUTH_METHOD=trust -p 5432:5432 postgres
engine = sa.create_engine('postgresql://postgres@127.0.0.1:5432/')
query = 'SELECT 1' # A more realistic example would be something that needs an exclusive lock on a table
with engine.begin() as conn:
results = pg_force_execute(
sa.text(query), # SQL query to execute
conn, # SQLAlchemy connection to run the query
engine, # SQLAlchemy engine that will create new connections to cancel blocking queries
delay=datetime.timedelta(minutes=5), # Amount of time to wait before cancelling queries
)
print(results.fetchall())
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pg_force_execute-0.0.1.tar.gz
(3.5 kB
view hashes)
Built Distribution
Close
Hashes for pg_force_execute-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6c9c3d4f313ee9d5574bc5b1f5bb874f1d4f0ce4c531a544139115d67ddc11f4 |
|
MD5 | 9f51b76c5ecec5fee5841835c937b533 |
|
BLAKE2b-256 | 8afacfdd9b05d3dd9ecc846cf5ba0d7f73ba6004d0e5abb2b751f0353a63e936 |