79767945

Date: 2025-09-18 03:03:50
Score: 1.5
Natty:
Report link

If Redshift kills an idle session, your next query will fail with an error (usually OperationalError or InterfaceError). The clean way to handle this in SQLAlchemy is to enable pool\_pre\_ping=True, which sends a quick SELECT 1 before using a connection and swaps out dead ones automatically. Pair that with pool\_recycle set to less than the idle timeout (e.g., 300 seconds for a 10-minute timeout) to proactively refresh connections before they expire. Keep sessions short-lived and add retry logic for critical queries. One gotcha: if a connection dies mid-transaction, you'll still get an error since transactions can't transparently recover - you'll need to rollback and retry. In short: pool\_pre\_ping handles dead connections, pool\_recycle prevents them from dying, and retries cover the edge cases.

Reasons:
  • Long answer (-0.5):
  • No code block (0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: thechrisgrey