Oracle Планировщик заданий с несколькими частотами - PullRequest
0 голосов
/ 12 марта 2020

Я создаю задания планировщика для выполнения резервного копирования с помощью хранимой процедуры, и я нахожусь в ситуации, когда пользователь выбирает несколько частот, например

В первом случае пользователь выбирает Ежемесячно в качестве частоты задания.

Во втором случае пользователь выбирает Еженедельно в качестве частоты задания (может быть из разных комбинаций дней).

В третьем случае пользователь выбирает Ежедневно в качестве частоты задания и т. Д.

Таким образом, в настоящее время есть 3 (может быть больше, согласно расписанию пользователя) частоты для одной и той же работы. Какой лучший способ сделать это? Я должен запланировать ту же работу с несколькими частотами или любым другим лучшим способом.

Ответы [ 2 ]

1 голос
/ 12 марта 2020

Я думаю, что лучший и чистый способ достичь этого - создать 3 разных JOBS для разных частот и включить / отключить их в соответствии с пользовательским вводом

Как включить / отключить работу в PL / SQL:

BEGIN
dbms_scheduler.disable('<JOB_NAME>');
END;
/

BEGIN
dbms_scheduler.enable('<JOB_NAME>');
END;
/

Ура !!

0 голосов
/ 12 марта 2020

Вы можете создать процедуру, и, основываясь на вводе пользователя, вы можете динамически изменять параметры следующим образом:

BEGIN
  DBMS_SCHEDULER.CREATE_JOB (
   job_name           =>  'job_name',
   job_type           =>  'STORED_PROCEDURE',
   job_action         =>  'PROCEDURE_NAME',
   start_date         =>  'START_DATE',
   repeat_interval    =>  'FREQ=DAILY;INTERVAL=1', /* every other day */
   end_date           =>  'END_DATE',
   auto_drop          =>   FALSE,
   comments           =>  'My new job');
END;
/
...