O
pgAgent é um agente de agendamento de tarefas para o banco de dados
Postgresql. O pgAgent executa scripts em lote (batch), shell scripts e várias tarefas SQL em agendamentos até complexos. Será mostrado como configurar corretamente o pgAgent para seu bom funcionamento.
O pgAgent é também um agente de agendamento que executa e gerencia trabalhos como o Cron no
Linux ou o Agendador de Tarefas no Windows. Cada tarefa no pgAgent consiste em uma ou mais etapas e cronogramas. Se dois ou mais jobs forem agendados para execução simultânea o pgAgent executará os jobs em paralelo (cada um com sua própria thread).
O pgAgent é executado como um daemon em sistemas Unix e como um serviço em sistemas Windows. Na maioria dos casos ele será executado no próprio servidor do banco de dados e por esse motivo o pgAgent não é configurado automaticamente quando o pgAdmin é instalado.
O pgAgent é distribuído independentemente do pgAdmin.
Trabalhos individuais podem ser direcionados a um host específico ou deixados para execução por qualquer host. O bloqueio impede a execução da mesma instância de um trabalho por vários hosts.
Você pode ter um ou mais jobs com o mesmo agendamento ou pode ter um agendamento para cada job (trabalho ou tarefa) como pode ter vários agendamentos para o mesmo job.
Ainda que não seja muito aconselhável abusar do pgAgent, pois não é função do banco de dados gerenciar agendamentos, podemos utilizar o pgAgent do pgAdmin para algumas tarefas selecionadas que não exijam muito do banco, pois, como já visto, na maioria dos casos o pgAgent é executado no próprio servidor do banco de dados.
Tarefas mais pesadas, como backup, por exemplo, prefira o Cron ou o Agendador de Tarefas.
Por exemplo, aqui no servidor temos dois campos em duas tabelas onde é necessário fazer update todos os dias tornando-os nulos com o comando "UPDATE schema.tabela SET campo = null WHERE data_atual <= CURRENT_DATE-1;" então agendamos essas tarefas no pgAgent para todos os dias à meia-noite.
Prefira o Cron do Linux ou o Agendador de Tarefas do Windows para agendar tarefas mais pesadas do Postgresql, porém, você sabendo dosar nada há que impeça o uso do pgAgent.