Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2      [все]
 Как выставить расписание  [new]
Никита А
Member

Откуда:
Сообщений: 43
Всем привет, не могу разобраться как в job выставить необходимое время выполнения. Нужно расписание на ежедневное выполнение в диапазоне с 8:30 до 9:30 каждую минуту.
Когда пробую выставить с 8:30, 8:31, 8:32... дохожу до 9:00 всё сливается в едино.

К сообщению приложен файл. Размер - 87Kb
6 июн 19, 05:47    [21903065]     Ответить | Цитировать Сообщить модератору
 Re: Как выставить расписание  [new]
Никита А
Member

Откуда:
Сообщений: 43
Как альтернативу думаю создать 2 задания, для выполнения промежутка с 8:30 до 8:59 и с 9:00 до 9:30
6 июн 19, 05:52    [21903066]     Ответить | Цитировать Сообщить модератору
 Re: Как выставить расписание  [new]
Никита А
Member

Откуда:
Сообщений: 43
Или несколько календарей добавить с этими диапазона, так будет правильнее.
6 июн 19, 05:58    [21903067]     Ответить | Цитировать Сообщить модератору
 Re: Как выставить расписание  [new]
-2-
Member

Откуда:
Сообщений: 14679
Никита А,

minutely
6 июн 19, 07:05    [21903083]     Ответить | Цитировать Сообщить модератору
 Re: Как выставить расписание  [new]
Никита А
Member

Откуда:
Сообщений: 43
-2-
Никита А,

minutely

Поподробнее можно?
6 июн 19, 07:20    [21903086]     Ответить | Цитировать Сообщить модератору
 Re: Как выставить расписание  [new]
Fogel
Member

Откуда:
Сообщений: 360
Никита А
-2-
Никита А,

minutely

Поподробнее можно?

можно
6 июн 19, 08:37    [21903114]     Ответить | Цитировать Сообщить модератору
 Re: Как выставить расписание  [new]
-2-
Member

Откуда:
Сообщений: 14679
Никита А
-2-
Никита А,

minutely

Поподробнее можно?
Невнимательно не прочел про :30.
Тогда bytime
6 июн 19, 08:39    [21903116]     Ответить | Цитировать Сообщить модератору
 Re: Как выставить расписание  [new]
Никита А
Member

Откуда:
Сообщений: 43
-2-,

Вы меня не понимаете, мне необходимо чтобы запускалась процедура каждый день с 8:30 до 9:30 каждую минуты, этого интервала
6 июн 19, 10:10    [21903207]     Ответить | Цитировать Сообщить модератору
 Re: Как выставить расписание  [new]
-2-
Member

Откуда:
Сообщений: 14679
Никита А
каждый день с 8:30 до 9:30 каждую минуты, этого интервала
bytime
6 июн 19, 10:14    [21903213]     Ответить | Цитировать Сообщить модератору
 Re: Как выставить расписание  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18080
Про документацию предлагал уже кто-нибудь?

А вообще на форуме есть достаточно много примеров, когда время следующего запуска устанавливалось из вызываемой рутины
6 июн 19, 10:23    [21903220]     Ответить | Цитировать Сообщить модератору
 Re: Как выставить расписание  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 1856
Никита А
выполнение в диапазоне с 8:30 до 9:30 каждую минуту.

не проще стартануть раз в 8:30
и в цикле "каждую минуту" запускать обработку

.....
stax
6 июн 19, 10:51    [21903247]     Ответить | Цитировать Сообщить модератору
 Re: Как выставить расписание  [new]
Никита А
Member

Откуда:
Сообщений: 43
-2-,

Мне непонятно, как прописать интервал с 8:30 до 9:30
Если пытаюсь добавить через конструктор, то получается это.

+
FREQ=
    DAILY;
BYDAY=
    MON,
    TUE,
    WED,
    THU,
    FRI,
    SAT,
    SUN;
BYHOUR=
    8,
    9;
BYMINUTE=
    0,
    1,
    2,
    3,
    4,
    5,
    6,
    7,
    8,
    9,
    10,
    11,
    12,
    13,
    14,
    15,
    16,
    17,
    18,
    19,
    20,
    21,
    22,
    23,
    24,
    25,
    26,
    27,
    28,
    29,
    30,
    31,
    32,
    33,
    34,
    35,
    36,
    37,
    38,
    39,
    40,
    41,
    42,
    43,
    44,
    45,
    46,
    47,
    48,
    49,
    50,
    51,
    52,
    53,
    54,
    55,
    56,
    57,
    58,
    59;
BYSECOND=
    0

Что мне здесь нужно изменить, под мои условия?
6 июн 19, 11:09    [21903267]     Ответить | Цитировать Сообщить модератору
 Re: Как выставить расписание  [new]
merch
Member

Откуда:
Сообщений: 143
Никита А,

какая версия Оракла?
6 июн 19, 16:46    [21903744]     Ответить | Цитировать Сообщить модератору
 Re: Как выставить расписание  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 17365
Никита А
FREQ=  DAILY;

Ну это как бы не раз в минуту...
6 июн 19, 16:49    [21903749]     Ответить | Цитировать Сообщить модератору
 Re: Как выставить расписание  [new]
Никита А
Member

Откуда:
Сообщений: 43
merch
Никита А,

какая версия Оракла?


Oracle Database 11g Release 11.2.0.3.0 - 64bit Production
7 июн 19, 04:07    [21904141]     Ответить | Цитировать Сообщить модератору
 Re: Как выставить расписание  [new]
Никита А
Member

Откуда:
Сообщений: 43
andrey_anonymous
Никита А
FREQ=  DAILY;

Ну это как бы не раз в минуту...


А как по другому сделать, чтобы каждый день запускалось тогда?
7 июн 19, 04:08    [21904142]     Ответить | Цитировать Сообщить модератору
 Re: Как выставить расписание  [new]
Никита А
Member

Откуда:
Сообщений: 43
andrey_anonymous
Никита А
FREQ=  DAILY;

Ну это как бы не раз в минуту...


Когда выбираю диапазон минутный, пропадают дополнительные настройки. Есть возможность только прикрепить одно или несколько расписаний. Как должно выглядеть расписание, чтобы срабатывало каждый день с 8:30 до 9:30 каждой минуты
7 июн 19, 04:17    [21904143]     Ответить | Цитировать Сообщить модератору
 Re: Как выставить расписание  [new]
SkilledJunior
Member

Откуда:
Сообщений: 303
Создай одно ежедневное задание, в нем запуск создания однократных заданий на интересующее время, для однократных dbms_job.submit в помощь и commit не забудь.
8 июн 19, 09:59    [21905070]     Ответить | Цитировать Сообщить модератору
 Re: Как выставить расписание  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 17365
Никита А
Есть возможность только прикрепить

Крепитесь.
Calendaring Syntax
8 июн 19, 10:55    [21905090]     Ответить | Цитировать Сообщить модератору
 Re: Как выставить расписание  [new]
Никита А
Member

Откуда:
Сообщений: 43
SkilledJunior
Создай одно ежедневное задание, в нем запуск создания однократных заданий на интересующее время, для однократных dbms_job.submit в помощь и commit не забудь.


Поставил интервал на 2 расписание, в одном прописал с 8:30 до 8:59, в другом соответственно с 9:00 до 9:30
10 июн 19, 05:41    [21905613]     Ответить | Цитировать Сообщить модератору
 Re: Как выставить расписание  [new]
Никита А
Member

Откуда:
Сообщений: 43
andrey_anonymous
Никита А
Есть возможность только прикрепить

Крепитесь.
Calendaring Syntax

Я так понимаю, расписание не приспособлено для указания интервалов в определенных промежутков, как в моём случае.
Единственное что может облегчить жизнь, это на pl/sql написать цикл, который создаст кучу расписаний поминутно в нужном интервале.
10 июн 19, 06:00    [21905616]     Ответить | Цитировать Сообщить модератору
 Re: Как выставить расписание  [new]
Никита А
Member

Откуда:
Сообщений: 43
Никита А
SkilledJunior
Создай одно ежедневное задание, в нем запуск создания однократных заданий на интересующее время, для однократных dbms_job.submit в помощь и commit не забудь.


Поставил в job интервал повторение на 2 расписания, в одном прописал с 8:30 до 8:59, в другом соответственно с 9:00 до 9:30

FREQ=DAILY;BYDAY=MON,TUE,WED,THU,FRI,SAT,SUN;BYHOUR=8,20;BYMINUTE=30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59;BYSECOND=0

и
FREQ=DAILY;BYDAY=MON,TUE,WED,THU,FRI,SAT,SUN;BYHOUR=9,21;BYMINUTE=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30;BYSECOND=0


К сообщению приложен файл. Размер - 45Kb
10 июн 19, 06:21    [21905618]     Ответить | Цитировать Сообщить модератору
 Re: Как выставить расписание  [new]
Да ну
Member

Откуда: Первопрестольная
Сообщений: 225
Никита А
FREQ=DAILY;BYDAY=MON,TUE,WED,THU,FRI,SAT,SUN;BYHOUR=8,20;BYMINUTE=30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59;BYSECOND=0

и

FREQ=DAILY;BYDAY=MON,TUE,WED,THU,FRI,SAT,SUN;BYHOUR=9,21;BYMINUTE=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30;BYSECOND=0

с 20:30 до 21:30 тоже нужно? (красным)

Можно еще извратиться с таймзоной для start_date - если уменьшать offset от нормального (для Москвы - GMT+03:00), то время запуска соответственно увеличится ( для примера на картинке будет запускаться каждую минуту с 8:30 до 9:29)
  sys.dbms_scheduler.create_job(
    job_name            => 'ME.JOB',
    job_type            => 'PLSQL_BLOCK',
    job_action          => 'begin null; end;',
    start_date          => TIMESTAMP '2019-06-01 08:00:00 +2:30',
    repeat_interval     => 'Freq=Minutely;ByHour=8',
    job_class           => 'DEFAULT_JOB_CLASS',
    enabled             => true
  );


К сообщению приложен файл. Размер - 6Kb
10 июн 19, 10:57    [21905757]     Ответить | Цитировать Сообщить модератору
 Re: Как выставить расписание  [new]
Никита А
Member

Откуда:
Сообщений: 43
Да, вечером тоже надо.
Ваш вариант сработает только один раз, а мне нужно ежедневно.
Если надо было на день, поставил бы ежеминутную частоту и выставил начальное и конечное время.
10 июн 19, 11:48    [21905809]     Ответить | Цитировать Сообщить модератору
 Re: Как выставить расписание  [new]
Да ну
Member

Откуда: Первопрестольная
Сообщений: 225
Никита А
Ваш вариант сработает только один раз, а мне нужно ежедневно.
Сработает ежедневно
10 июн 19, 12:04    [21905826]     Ответить | Цитировать Сообщить модератору
 Re: Как выставить расписание  [new]
Никита А
Member

Откуда:
Сообщений: 43
Да ну
Сработает ежедневно

Засчёт чего, он будет срабатывать ежедневно? Ведь в частоте срабатывания не указанно про ежедневное выполнение.
13 июн 19, 04:26    [21907548]     Ответить | Цитировать Сообщить модератору
 Re: Как выставить расписание  [new]
-2-
Member

Откуда:
Сообщений: 14679
Никита А
Да ну
Сработает ежедневно

Засчёт чего, он будет срабатывать ежедневно? Ведь в частоте срабатывания не указанно про ежедневное выполнение.
Следуя этой логике daily без указания месяцев и лет не должно выполняться ежемесячно, ежегодно,...
13 июн 19, 06:51    [21907589]     Ответить | Цитировать Сообщить модератору
 Re: Как выставить расписание  [new]
Никита А
Member

Откуда:
Сообщений: 43
Картинка с другого сайта.
Вы сами проверяли предложенный вариант?
13 июн 19, 07:44    [21907604]     Ответить | Цитировать Сообщить модератору
 Re: Как выставить расписание  [new]
-2-
Member

Откуда:
Сообщений: 14679
Никита А
Картинка с другого сайта.
Вы сами проверяли предложенный вариант?
МЫ проверили. Поверишь на слово или проверишь проверку?
13 июн 19, 07:57    [21907609]     Ответить | Цитировать Сообщить модератору
 Re: Как выставить расписание  [new]
Никита А
Member

Откуда:
Сообщений: 43
-2-,
Вы сами проверяли предложенный вариант?
У Вас написано, повторять каждую минуту Freq=Minutely, в 8 часов ByHour=8. Это как понимать, при ежеминутном повторе?

К сообщению приложен файл. Размер - 6Kb
13 июн 19, 07:57    [21907610]     Ответить | Цитировать Сообщить модератору
 Re: Как выставить расписание  [new]
Никита А
Member

Откуда:
Сообщений: 43
-2-
МЫ проверили. Поверишь на слово или проверишь проверку?

Ну запустится задание в 8, а что его прервёт дальше?
13 июн 19, 08:02    [21907612]     Ответить | Цитировать Сообщить модератору
 Re: Как выставить расписание  [new]
-2-
Member

Откуда:
Сообщений: 14679
Никита А
Ну запустится задание в 8, а что его прервёт дальше?
Конец света, например.
13 июн 19, 09:01    [21907646]     Ответить | Цитировать Сообщить модератору
 Re: Как выставить расписание  [new]
merch
Member

Откуда:
Сообщений: 143
Никита А,

Дискуссия так затянулась, что уже придумал бы велосипед.
Стартуй каждую минуту, а в job_action в pl/sql проверяй, твое время или нет.

Хотя нечто подобное, мсье Stax уже предлагал.
13 июн 19, 13:51    [21907938]     Ответить | Цитировать Сообщить модератору
 Re: Как выставить расписание  [new]
j2k
Member

Откуда: Новосибирск
Сообщений: 544
Никита А, а использование dbms_scheduler принципиально? Через dbms_job нарисовать вроде несложно.
13 июн 19, 14:34    [21907965]     Ответить | Цитировать Сообщить модератору
 Re: Как выставить расписание  [new]
oragraf
Member

Откуда: Moscow
Сообщений: 1197
Никита А,

EVALUATE_CALENDAR_STRING
13 июн 19, 17:03    [21908102]     Ответить | Цитировать Сообщить модератору
 Re: Как выставить расписание  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 17365
j2k
Никита А, а использование dbms_scheduler принципиально? Через dbms_job нарисовать вроде несложно.

Парни, ну как так-то?!
И ведь ссылку на доку дал... один хрен никто не чтит.
Простейший способ:

begin
  dbms_scheduler.create_schedule(schedule_name   => 'DAILY_830_859',
                                 start_date      => to_date(null),
                                 repeat_interval => 'Freq=Daily;ByHour=8;ByMinute=30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59',
                                 end_date        => to_date(null),
                                 comments        => '8:30-8:59');
  dbms_scheduler.create_schedule(schedule_name   => 'DAILY_900_929',
                                 start_date      => to_date(null),
                                 repeat_interval => 'Freq=Daily;ByHour=9;ByMinute=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29',
                                 end_date        => to_date(null),
                                 comments        => '9:00-9:29');
end;
/
PL/SQL procedure successfully completed

DECLARE
  start_date        TIMESTAMP;
  return_date_after TIMESTAMP;
  next_run_date     TIMESTAMP;
BEGIN
  start_date := to_timestamp_tz('01-06-2019 00:00:00','DD-MM-YYYY HH24:MI:SS');
  return_date_after := start_date;
  FOR i IN 1..70 LOOP
    DBMS_SCHEDULER.EVALUATE_CALENDAR_STRING('DAILY_830_859,DAILY_900_929'
      , start_date, return_date_after, next_run_date);
    DBMS_OUTPUT.PUT_LINE(to_char(next_run_date,'"next_run_date date is: " yyyy-mm-dd hh24:mi:ss'));
    return_date_after := next_run_date;
  END LOOP;
END;
/
next_run_date date is:  2019-06-01 08:30:00
next_run_date date is:  2019-06-01 08:31:00
next_run_date date is:  2019-06-01 08:32:00
next_run_date date is:  2019-06-01 08:33:00
...
next_run_date date is:  2019-06-01 08:57:00
next_run_date date is:  2019-06-01 08:58:00
next_run_date date is:  2019-06-01 08:59:00
next_run_date date is:  2019-06-01 09:00:00
next_run_date date is:  2019-06-01 09:01:00
...
next_run_date date is:  2019-06-01 09:27:00
next_run_date date is:  2019-06-01 09:28:00
next_run_date date is:  2019-06-01 09:29:00
next_run_date date is:  2019-06-02 08:30:00
next_run_date date is:  2019-06-02 08:31:00
next_run_date date is:  2019-06-02 08:32:00
next_run_date date is:  2019-06-02 08:33:00
next_run_date date is:  2019-06-02 08:34:00
next_run_date date is:  2019-06-02 08:35:00
next_run_date date is:  2019-06-02 08:36:00
next_run_date date is:  2019-06-02 08:37:00
next_run_date date is:  2019-06-02 08:38:00
next_run_date date is:  2019-06-02 08:39:00

PL/SQL procedure successfully completed

SQL> 
13 июн 19, 17:31    [21908129]     Ответить | Цитировать Сообщить модератору
 Re: Как выставить расписание  [new]
Lary Denis
Member

Откуда:
Сообщений: 21
andrey_anonymous,

эх, 2015 год.. как давно это было.
13 июн 19, 17:52    [21908149]     Ответить | Цитировать Сообщить модератору
 Re: Как выставить расписание  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 17365
Lary Denis
эх, 2015 год.. как давно это было.

Мммм?
13 июн 19, 18:14    [21908167]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / Oracle Ответить