Hola Fernando, te comento algunas cositas:

* No veo la configuracion de shared_preload_libraries = 'pg_cron'

* Si puedes evita modificar las tablas del catalogo de pg_cron como cron.job

* A la variable de configuracion cron.host dale el valor de `show unix_socket_directories;` no en todos las instalaciones es la misma


y no olvides hacer un restart después de esos cambios.

solo para descartar elimina todos tus jobs y crealos después de las nuevas configuraciones

Saludos


On 10-07-24 13:48, Fernando Monjes wrote:
Hola Comunidad.,

He estado hace rato intentando que funcione el pg_cron, y nada, he investigado ene pero sin resultado ., los datos y las pruebas en mi ambiente de laboratorio, :

Postgres: V 15.7
Pg_cron V 1.6
Rocky Linux 8.20
Usuario para pruebas: postgres

En el Postgresql.conf
Listen_address = *
cron.database_name = 'xxxxdb'
cron.host = ' '
cron.use_background_workers = on
max_worker_processes = 8

Intente en mi BD xxxxdb con usuario postgres
SELECT cron.schedule('test8','30 12 * * *', $$ VACUUM $$);
SELECT cron.schedule('test1','30 12 * * *', 'VACUUM');

...
....
Intente ademas con varios nodename ...
UPDATE cron.job SET nodename = '';
UPDATE cron.job SET nodename = '127.0.0.1';
UPDATE cron.job SET nodename = 'localhost';
UPDATE cron.job SET nodename = '<mi ip>';
UPDATE cron.job SET nodename = '\tmp';

Tambien le asigne grant
Grant all privileges on schema cron to postgres

Valide que la conexion funciona- sin pssword
psql -h localhost -p 5432 -U postgres -d xxxxdb
psql (15.7)
Type "help" for help.
xxxxdb=#

Valide los de pg_hba también

postgres@pgmaster:~/15/data$ cat pg_hba.conf

# TYPE  DATABASE        USER            ADDRESS   METHOD
local   all                all     trust
local   xxxxdb        postgres  trust

Y tambien configure el .pgpass

postgres@pgmaster:~$ cat .pgpass
<mi ip>:5432:xxxxdb:postgres:xxxxxx
127.0.0.1:5432:xxxxdb:postgres:xxxxxx
localhost:5432:xxxxdb:postgres:xxxxxx
<hostname>:5432:xxxxdb:postgres:xxxxxx


Resultado el mismo, nada !!

xxxxdb=#  select * from cron.job;
 jobid |  schedule   |                  command     | nodename  | nodeport | database | username | active | jobname
-------+-------------+--------------------------------------------+-----------+----------+----------+----------+--------+---------
     1 | 52 11 * * * | SELECT crear_code_create()            |          |     5432 | xxxxdb  | postgres | t      | test      8 | 54 11 * * * | SELECT crear_code_create()            |          |     5432 | xxxxdb  | postgres | t      | test1      9 | 58 11 * * * | SELECT esquema.crear_code_create()|         |     5432 | xxxxdb  | postgres | t      | test2     10 | 59 11 * * * | CALL  esquema.crear_code_create()|         |     5432 | xxxxdb  | postgres | t      | test2
    ...
  ....
     12 | 19 12 * * * | VACUUM         | localhost |     5432 | xxxxdb  | postgres | t      | test5     13 | 23 12 * * * | VACUUM     | localhost |     5432 | xxxxdb  | postgres | t      | test6     14 | 26 12 * * * | VACUUM     | localhost |     5432 | xxxxdb  | postgres | t      | test7     15 | 30 12 * * * |  VACUUM    | localhost |     5432 | xxxxdb  | postgres | t      | test8
(9 rows)

xxxxdb=# select * from cron.job_run_details order by start_time desc limit 5;  jobid | runid | job_pid | database | username | command | status | return_message | start_time | end_time
-------+-------+---------+----------+----------+---------+--------+----------------+------------+----------
(0 rows)
Siempre lo mismo 0 resultado, no se ejecuta


Active el log a debug del server postgres pero lo unico que me muestra es:

log:
2024-07-10 10:27:11.195 EDT [1829] LOG:  pg_cron scheduler started
pero nada de conexiones fallida u otra cosa.


Si alguien sabe que me falta se lo agradeceria porque ya se me acabaron los conejos del sombrero

Gracias

Fernando Monjes B.
Consultor DBA
Ingeniero en Informática

Reply via email to