Skip to main content

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())

Running tests locally

pip install -e ".[dev]"  # Only needed once
./start-services.sh      # Only needed once
pytest

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

pg_force_execute-0.0.3.tar.gz (3.8 kB view details)

Uploaded Source

Built Distribution

pg_force_execute-0.0.3-py3-none-any.whl (3.7 kB view details)

Uploaded Python 3

File details

Details for the file pg_force_execute-0.0.3.tar.gz.

File metadata

  • Download URL: pg_force_execute-0.0.3.tar.gz
  • Upload date:
  • Size: 3.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.8.11

File hashes

Hashes for pg_force_execute-0.0.3.tar.gz
Algorithm Hash digest
SHA256 c19db4a8a7f3398d258a98a2a18f409ae7ba935c889505623d5dc854cc28e03f
MD5 d7e0ab80a1a4ed067a6280ee76e287c7
BLAKE2b-256 faff2c03740c3d5b3011c93ae19ae1966f2d681fa0a9fd00b70cdd7828500f65

See more details on using hashes here.

File details

Details for the file pg_force_execute-0.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for pg_force_execute-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 724c45bb92a349b153c5e48141fced74a0a503d9f5fefb568b7089e3ec63cd3c
MD5 0659671e9edacba4e265b7a6d8149c48
BLAKE2b-256 8eb4f77d68556344eedb8317c194e7e94eca9409889ba10b684c2902c66b8011

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