有没有办法以编程方式在pgagent中创建和管理作业/日程安排,即没有使用pgAdmin?
我怀疑通过使用libpq写一个postgres客户端可能有办法做到这一点(如果pgagent不支持开箱即用的这种行为) - 但我不知道如何去做 - 如果我需要请记下编写我的OWN API以获得作业/计划CRUD功能。
所以基本上我问了两个问题:
答案 0 :(得分:3)
下面将创建一个每分钟运行一次的作业,其中一个步骤调用一些SQL:
do $$
declare
job_id int;
begin
/* add a job and get its id: */
insert into
pgagent.pga_job (jobjclid, jobname)
values
(1 /*1=Routine Maintenance*/, 'my job name')
returning
jobid
into
job_id;
/* add a step to the job: */
insert into
pgagent.pga_jobstep (jstjobid, jstname, jstkind, jstcode, jstdbname)
values
(
job_id,
'my step name',
's', /* sql step */
'select * from thing', /* the sql to run */
'mydb' /* the name of the database to run the step against */
);
/* add a schedule to the job. This one runs every minute: */
insert into
pgagent.pga_schedule (jscjobid, jscname)
values
(job_id, 'my schedule name');
end $$;
答案 1 :(得分:2)
pgAdmin只是创建了一些SQL语句,就是这样。任何可以连接到数据库“postgres”并具有使用pgAgent模式和表的权限的应用程序都可以管理pgAgent的作业和计划。这只是SQL。