Tenho aqui uma instância simples do PostgreSQL, gerada por um script de construção. O objetivo é fazer com que ele seja automaticamente desligado com segurança, caso não haja nenhuma nova solicitação de conexão por um tempo (cerca de 5 minutos).
Qual é a melhor maneira de fazer isso? postgresql.conf
e similares são surpreendentemente silenciosos em tal questão.
Não existe uma maneira automática de fazer isso.
Talvez o seguinte seja bom o suficiente:
configure
log_connection = on
elog_disconnection = on
, para que todas as conexões e desconexões escrevam uma linha no arquivo de logtenha um
cron
trabalho no servidor de banco de dados que verifique as duas coisas a seguir a cada 5 minutos:o carimbo de data/hora de modificação do arquivo de log do PostgreSQL
o número de processos PostgreSQL
se o arquivo de log não foi modificado nos últimos 5 minutos e o número de processos do PostgreSQL for apenas a contagem de processos postmaster + processos em segundo plano (6 na v16 com configurações padrão), desligue o PostgreSQL