поскреб я затылок и наваял такое:
Небольшая инъекция в код pgAgent
функция "pgagent"."pga_next_schedule"
declare
..............-- add by msr (second offset interval)
step_sec interval;
last_sec interval;
--/.............
begin
.....-- add by msr (second offset interval)
nextrun:=date_trunc('second',nextrun);
last_sec:=(COALESCE(to_char(date_trunc('second',jobnextrun),'ss'),'0')||' second')::interval
FROM pgagent.pga_job
WHERE jobid=(SELECT s.jscjobid FROM pgagent.pga_schedule s
WHERE s.jscid=jscid);
step_sec:=(COALESCE(to_char( date_trunc('second',jscstart),'ss'),'0')||' second')::interval ;
IF extract('second'FROM step_sec)>0 then
nextrun:=nextrun-interval '2 minute';
nextrun:=nextrun+(step_sec+last_sec) ;
end IF;
--/--<< здесь RETURN nextrun;
end;
Как сие работает: создаете задачу, к ней расписание - если в расписании указаны секунды, например 20, то задание будет запускаться каждые 20 секунд (конечно при условии, что никаких больше нет установок).
Конечно все не очень изящно, но с минимумом изменений, кому надо, тот сам сделает красиво.
Подойдёт? http://post
Подойдёт?
http://postgresql.ru.net/node/65537
ну идея конечно
ну идея конечно не плохая, но там походу минимальное время - минута, а мне нужно 20-30 сек.
А кто мешает
А кто мешает запускаться раз в минуту, выполнять нужное действие, делать паузу на 20-30 секунд и снова запускать нужное действие?
поскреб я
поскреб я затылок и наваял такое:
Небольшая инъекция в код pgAgent
функция "pgagent"."pga_next_schedule"
Как сие работает: создаете задачу, к ней расписание - если в расписании указаны секунды, например 20, то задание будет запускаться каждые 20 секунд (конечно при условии, что никаких больше нет установок).
Конечно все не очень изящно, но с минимумом изменений, кому надо, тот сам сделает красиво.