20 lines
986 B
Python
20 lines
986 B
Python
# 2026-03-21 — chaos-slowquery: намеренно медленный запрос через pg_sleep.
|
|
# Тестирует: timeout enforcement — платформа должна прервать запрос если > timeout_sec.
|
|
# sleep_sec cap = 8 (меньше timeout_sec=10 сервиса → успех; >10 → таймаут платформы).
|
|
import os, psycopg2
|
|
|
|
def slowquery(event):
|
|
sleep_sec = min(float(event.get("sleep_sec", 2.0)), 8.0)
|
|
conn = psycopg2.connect(
|
|
host=os.environ["PGHOST"], port=int(os.environ.get("PGPORT", 5432)),
|
|
dbname=os.environ["PGDATABASE"], user=os.environ["PGUSER"],
|
|
password=os.environ["PGPASSWORD"], sslmode=os.environ.get("PGSSLMODE", "require"),
|
|
)
|
|
try:
|
|
with conn.cursor() as cur:
|
|
cur.execute("SELECT pg_sleep(%s), now()::text", (sleep_sec,))
|
|
result = cur.fetchone()
|
|
return {"slept_sec": sleep_sec, "pg_now": result[1]}
|
|
finally:
|
|
conn.close()
|