Configure App Timeouts in database.yml
masterTo prevent connections from hanging and individual queries from consuming excessive resources, add timeouts to your config/database.yml.
Postgres:
Set connect_timeout, statement_timeout, and lock_timeout.
Note: If using a connection pooler like PgBouncer in transaction mode, set statement_timeout and lock_timeout on the database user instead.
MySQL:
Set connect_timeout, read_timeout, write_timeout, max_execution_time (in ms), and lock_wait_timeout (in seconds).
MariaDB:
Set connect_timeout, read_timeout, write_timeout, max_statement_time (in seconds), and lock_wait_timeout (in seconds).
# Postgres example
production:
connect_timeout: 5
variables:
statement_timeout: 15s
lock_timeout: 10s
# MySQL example
production:
connect_timeout: 5
read_timeout: 5
write_timeout: 5
variables:
max_execution_time: 15000 # ms
lock_wait_timeout: 10 # sec
# MariaDB example
production:
connect_timeout: 5
read_timeout: 5
write_timeout: 5
variables:
max_statement_time: 15 # sec
lock_wait_timeout: 10 # sec