|
Время работы джоба
|
|||
---|---|---|---|
#18+
Добрый день. Можно ли задать следующий интервал у ОДНОГО джоба: Каждый день кроме выходных с 9 до 18 с интервалом 5 секунд? Я пока только до двух додумался, но и то там есть вопросы. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 10:01 |
|
Время работы джоба
|
|||
---|---|---|---|
#18+
Можно конечно намутить INTERVAL, но ИМХО проще установить интервал 5 секунд, а уже в теле джоба проверять текущий день (выходной/рабочий) и время (рабочее/не рабочее) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 10:15 |
|
Время работы джоба
|
|||
---|---|---|---|
#18+
Выходные с интервалом 5 секунд - это секунду работаю, четыре секунды выходной (по аналогии "сутки через трое")? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 10:15 |
|
Время работы джоба
|
|||
---|---|---|---|
#18+
SynopticМожно конечно намутить INTERVAL, но ИМХО проще установить интервал 5 секунд, а уже в теле джоба проверять текущий день (выходной/рабочий) и время (рабочее/не рабочее) Да, тоже примерно об этом думал. Запустить навсегда с интервалом 5 секунд, а в функции уже контролировать дату и время выполнения логики. -2-Выходные с интервалом 5 секунд - это секунду работаю, четыре секунды выходной (по аналогии "сутки через трое")? Пн: 08:00-17:59 выполняется, 18:00-07:59 не выполняется Вт: 08:00-17:59 выполняется, 18:00-07:59 не выполняется Ср: 08:00-17:59 выполняется, 18:00-07:59 не выполняется Чт: 08:00-17:59 выполняется, 18:00-07:59 не выполняется Пт: 08:00-17:59 выполняется, 18:00-07:59 не выполняется Сб: 00:00-23:59 не выполняется Вс: 00:00-23:59 не выполняется Интервал 5 сек. Начало в 08:00:00. Следующие вызовы: 08:00:00, 08:00:05, 08:00:10, 08:00:15, 08:00:20, 08:00:25, 08:00:30, 08:00:35, 08:00:40, 08:00:45 и т.д. Так как функция выполняется 1сек (реально меньше), то фактически получается "секунду работаю, четыре секунды выходной". ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 10:47 |
|
Время работы джоба
|
|||
---|---|---|---|
#18+
Ещё вариант, организовать в теле джоба бесконечный цикл и в теле сделать проверку текущего дня/времени, а в конце цикла задержку с помощью Dbms_Lock.sleep(5) Тогда вообще не нужно думать над сложным интервалом. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 10:54 |
|
Время работы джоба
|
|||
---|---|---|---|
#18+
IMNO, выходной не обязательно суббота/воскресенье и наоборот в древних версиях ф-ция имела параметр Next_Date IN OUT DATE (время следующего запуска), я б определял время запуска в ф-ции и возвращал его "субмиту" зы в соременной субд возможно надо юзать шедюлер с расписанием ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 11:17 |
|
Время работы джоба
|
|||
---|---|---|---|
#18+
IMNOSynopticМожно конечно намутить INTERVAL, но ИМХО проще установить интервал 5 секунд, а уже в теле джоба проверять текущий день (выходной/рабочий) и время (рабочее/не рабочее) Да, тоже примерно об этом думал. Запустить навсегда с интервалом 5 секунд, а в функции уже контролировать дату и время выполнения логики. -2-Выходные с интервалом 5 секунд - это секунду работаю, четыре секунды выходной (по аналогии "сутки через трое")? Пн: 08:00-17:59 выполняется, 18:00-07:59 не выполняется Вт: 08:00-17:59 выполняется, 18:00-07:59 не выполняется Ср: 08:00-17:59 выполняется, 18:00-07:59 не выполняется Чт: 08:00-17:59 выполняется, 18:00-07:59 не выполняется Пт: 08:00-17:59 выполняется, 18:00-07:59 не выполняется Сб: 00:00-23:59 не выполняется Вс: 00:00-23:59 не выполняется Интервал 5 сек. Начало в 08:00:00. Следующие вызовы: 08:00:00, 08:00:05, 08:00:10, 08:00:15, 08:00:20, 08:00:25, 08:00:30, 08:00:35, 08:00:40, 08:00:45 и т.д. Так как функция выполняется 1сек (реально меньше), то фактически получается "секунду работаю, четыре секунды выходной". Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 11:19 |
|
Время работы джоба
|
|||
---|---|---|---|
#18+
feagor, для случаев, когда доп.праздники, переносы, использовать доп. расписание рабочих/выходных дней через Код: plsql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 11:37 |
|
Время работы джоба
|
|||
---|---|---|---|
#18+
feagorfeagor, для случаев, когда доп.праздники, переносы, использовать доп. расписание рабочих/выходных дней через Код: plsql 1. 2.
Ну учитывая рабочие, проще тогда уже сделать, как Synoptic предложил. Запускаем навсегда, но контролируем ифами в функции. Всем спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 11:39 |
|
Время работы джоба
|
|||
---|---|---|---|
#18+
IMNO, судя по тому, что вы запускаете это каждые 5 секунд - предполагаю, что чекаете поступление каких-то данных и обрабатываете их. В вашем случае возможно будет лучше использовать DBMS_AQ с запуском DEQUEUE по событию ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 12:10 |
|
Время работы джоба
|
|||
---|---|---|---|
#18+
Возможно, будет полезно. У меня была похожая задача, но мне нужно было менять время следующего запуска джоба в зависимости от условий, и заранее неизвестно, будет выполнено условие или нет. В моём случае джоб звал процедуру, внутри процедуры проверялось условие. Если условие выполнено, изменяется время следующего джоба на завтра. Если условие не выполнено, изменяется время следующего джоба на "через пять минут". С такой процедурой есть возможность навешивать сложные условия (не только буден/выходной) на время следующего выполнения джоба. Для изменения времени джоба написал такую процедуру: Код: plsql 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 14:53 |
|
Время работы джоба
|
|||
---|---|---|---|
#18+
Ерундой не надо заниматься Stax уже намекнул, что можно выставить врямя следующего запуска прямо в переменной NEXT_DATE С DBMS_SCHEDULER это тоже работает PS. Но по условию первоначальной задачи (безо всяких праздников) самый красивый/переносимый/правильный вариант таки от feagor 21962320 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 15:07 |
|
|
start [/forum/topic.php?fid=52&msg=39856512&tid=1882122]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
86ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 293ms |
total: | 464ms |
0 / 0 |