Antes de ver como se programan tareas en pgAdmin debemos de instalar el componente pgAgent según se indican en las siguientes instruciones.
Una vez instalado el componente nos aparecerá un nuevo componente en la parte visual:
Para su utilización solamente es necesario ir siguiendo los paso de configuración, aunque cabe tener en cuenta:
- Si no queremos devolver nada en la función indicar void
- Si vamos a devolver un valor hay que especificar el tipo de valor y en el código poner los RETURN que sean necesarios.
Ejemplo de creación de una tarea de inserción de un regustro en la tabla tb_promocion_joven
Crear función de inserción:
Crear la función a la que llamará el ajente
Definir el nombre de la función
Incluir el código de la función
Codigo fuente que realiza la misma acción:
CREATE OR REPLACE FUNCTION ventas.add_promocion_joven() RETURNS void LANGUAGE 'sql' VOLATILE PARALLEL UNSAFE COST 100.0 AS $function$INSERT INTO ventas.tb_promocion_joven( client_name, age, address, city, country, contact_email, phone) VALUES ('Prueba Agente', 10, 'Prueba Agente', 'Prueba Agente', 'Prueba Agente', 'Prueba Agente', 'Prueba Agente');$function$;
Crear el agente
Llamar a la creación del agente
Definir el nombre del agente
Incluir sus pasos, teniendo en cuenta que se debe meter el codigo pulsando en el icono de editar
Definir la programación de la tarea
Visualizar que el ajente a realizado el trabajo de forma correcta
Comprobar que la tarea se a ejecutado
Diego Calvo, buenos días. Está muy bueno el ejemplo. Algo parecido a esto es lo que necesito. Yo tengo instalado pgAdmin III. Le agradecería me oriente cómo aplicaría este ejemplo en pgadmin III?
Buenas Edgar,
Yo tengo instalados los dos gestores tanto pgAdmin 3 como el 4 y funcionan de forma simultanea, el uso de ambos es muy similar aunque cambian las intefraces ligeramente.
Te oriento un poco como proceder:
1.- Instalar el gestor de Job – PGAgent que puedes descargar de https://www.diegocalvo.es/instalacion-de-postgresql-9-6-pgadmin-4-en-mac-y-dbwrench/, se puede instalar de forma individual pero es mas sencillo desde el enlace que te indico.
2. Una vez que lo instalas en el gestor de PGAdmin 3 y 4 debe aparecerte una nueva opción debajo de las bases de datos que tengas instaladas.
3. Una vez que esto te salga seguir los pasos como te indico.
Un saludo y espero haberte servido de ayuda.
Gracias Diego Calvo. Si, pgagent ya lo tengo instalado. El asunto es que la siguiente función:
SELECT dblink_connect(‘miconexion’
,’hostaddr=185.15.999.99 port=11076 dbname=axio user=webadmin password=xxxxxP’);
CREATE OR REPLACE FUNCTION edgar() RETURNS SETOF tabxter AS
$BODY$
DECLARE
nit varchar;
nom varchar;
reg tabxter%rowtype;
BEGIN
FOR reg IN
SELECT «TERCXNIT»,»TERCNOMB» FROM public.tabxter a
LOOP
RETURN NEXT reg;
row of SELECT
nit = reg.»TERCXNIT»;
nom = reg.»TERCNOMB»;
RAISE NOTICE ‘Registro nuevo para insertar en hosting %,%’,nit,reg.»TERCNOMB»;
PERFORM dblink_exec(‘miconexion’,’INSERT INTO public.tabxter(«TERCXNIT»,»TERCNOMB») VALUES(»’||nit||»’,»’||nom||»’)’);
insertado en hosting (%)’,reg1;
END LOOP;
–RETURN;
END
$BODY$
LANGUAGE plpgsql;
SELECT * FROM edgar();
DEBO EJECUTARLA DIARIAMENTE EN LAS MAÑANAS. la función me trabaja perfectamente ejecutándola desde sql Editor. Pero no tengo la menor idea como insertarla en el job de pgadmin III.
Soy nuevo en esto, quizás es muy sencillo pero por ahora lo veo un poco complicado.
De antemano muchas gracias por su colaboración.
So
ya probe con los pasos y todo pero no veo que se ejecute en automatico
si se ejecuta cuando le doy clic derecho en jobs y luego en Run Now de lo contrario no
Me pasa lo mismo :'(, alguien q nos pudiera orientar?
Hola Diego. Anteriormente tenia instalado pgadmin 4, y me propuse a instalar pgagent. Pero al abrir mi pgadmin no logro visualizar el nodo de jobs. ¿Me podrías ayudar con alguna sugerencia para resolver?. Gracias!
Hola Diego, Sabes si esto funciona para ejecutar un job construido en pentaho.
Tengo mi repositorio almacenado en postgresql.