Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Выполнение scheduler job в определенной промежуток времени  [new]
Pavel Sannikov
Member

Откуда:
Сообщений: 26
Добрый день,
подскажите пожалуйста каким образом организуется запуск заданий в oracle 11gR2 по определенному расписанию в определенное временное окно.

Есть некий джоб который сейчас запускается по интервалу раз в минуту, необходимо его же запускать с таким же интервалом но только в промежутке с 7 до 22 часов каждый день.
15 апр 15, 07:37    [17516275]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение scheduler job в определенной промежуток времени  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18486
Можно просто поменять расписание
Можно назначить окно и ресурсный план
Можно вываливаться из самого кода, если время неподходящее
Можно из самого кода назначить время следущего запуска
Можно привязать к сервису и запускать/стопить сервис другим джобом
Можно разрешать/запрещать основное задание другим
...
15 апр 15, 07:47    [17516290]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение scheduler job в определенной промежуток времени  [new]
Pavel Sannikov
Member

Откуда:
Сообщений: 26
А можете подсказать подробнее о любом из способов как это реализовать (1 и 2 способ имеется ввиду).

По первому не понятно как в расписании указать запуск ежеминутно за исключеним периода/или же наоборот в определенный период
По второму с ресурсным планом/окном не работал но хотелось бы тоже разобраться как это работает
15 апр 15, 08:07    [17516318]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение scheduler job в определенной промежуток времени  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18486
Предлагаешь пересказать тебе несколько глав документации ('это и Administration Guide и Database PL/SQL Packages and Types Reference)?
Для затравки:
tst> set serveroutput on
tst> declare start_date timestamp := systimestamp;
  2          check_from_date timestamp := timestamp '2015-04-15 15:55:00';
  3          next_start_date timestamp;
  4  begin   for i in 1..10 loop
  5              dbms_scheduler.evaluate_calendar_string('freq=minutely;byhour=13,14,15',
  6                      start_date, check_from_date, next_start_date);
  7              dbms_output.put_line(next_start_date);
  8              check_from_date := next_start_date;
  9          end loop;
 10  end;
 11  /
15-APR-15 03.55.47.000000 PM
15-APR-15 03.56.47.000000 PM
15-APR-15 03.57.47.000000 PM
15-APR-15 03.58.47.000000 PM
15-APR-15 03.59.47.000000 PM
16-APR-15 01.00.47.000000 PM
16-APR-15 01.01.47.000000 PM
16-APR-15 01.02.47.000000 PM
16-APR-15 01.03.47.000000 PM
16-APR-15 01.04.47.000000 PM

PL/SQL procedure successfully completed.
15 апр 15, 08:34    [17516370]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение scheduler job в определенной промежуток времени  [new]
Pavel Sannikov
Member

Откуда:
Сообщений: 26
Спасибо большое за помощь
15 апр 15, 09:04    [17516446]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить