powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / несколько режимов работы джоба
11 сообщений из 11, страница 1 из 1
несколько режимов работы джоба
    #39437803
Сергей_00001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

подскажите пожалуйста, ситуация следующая:

есть таблица х1, в которую производится инсерт данных, далее эти данные необходимо перекладывать в таблицу х2 из которой они уже берутся для обработки, для этого я настроил джоб который раз в минуту забирает 5000 записей из х1 в х2, как мне сделать так, чтобы при малом кол-ве записей у меня не было простоя и джоб не ждал минуту, а сразу их перекладывал, анализируя скажем очередь записей в некой таблице х3, т.е. если в х3 больше 5000 записей, то джоб кладет из х1 в х2 раз в минуту по 5к, если записей в х3 меньше, то он не ждет минуту, а сразу их перекладывает

подскажите, как реализовать такую логику в одном джобе?
...
Рейтинг: 0 / 0
несколько режимов работы джоба
    #39437820
ORA__SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей_00001Добрый день!
подскажите пожалуйста, ситуация следующая:
есть таблица х1, в которую производится инсерт данных, далее эти данные необходимо перекладывать в таблицу х2 из которой они уже берутся для обработки, для этого я настроил джоб который раз в минуту забирает 5000 записей из х1 в х2, как мне сделать так, чтобы при малом кол-ве записей у меня не было простоя и джоб не ждал минуту, а сразу их перекладывал, анализируя скажем очередь записей в некой таблице х3, т.е. если в х3 больше 5000 записей, то джоб кладет из х1 в х2 раз в минуту по 5к, если записей в х3 меньше, то он не ждет минуту, а сразу их перекладывает
подскажите, как реализовать такую логику в одном джобе?producer не должен строить свою логику, полагаясь на производительность consumer
...
Рейтинг: 0 / 0
несколько режимов работы джоба
    #39437857
Фотография JaRo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну написать-то, конечно, можно(NEXT_DATE никто не отменял), но надо ли? Вы же понимаете, что ваше "а сразу" означает, что что-то должно проверять размерность таблицы постоянно?
Можно, конечно, сделать очередь вместо таблицы, натравить на неё scheduler с plsql-нотификацией, но..

Может всё-таки в вашей задаче проще дать возможность конечному пользователю определить свои "5 минут" самостоятельно. Неужели наполнение таблицы настолько хаотичное, что не может быть определено никаким расписанием?
...
Рейтинг: 0 / 0
несколько режимов работы джоба
    #39437865
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей_00001,
раздели джоб и процедуру. запускай джоб каждые 10 секунд. в процедуре проверяй запущена такая же процедура выставляя какой нибудь флаг. если запущена закончили выполнение процедуры. если нет то берем 5к записей и пилим. изживай узость мышления.
...
Рейтинг: 0 / 0
несколько режимов работы джоба
    #39437868
Сергей_00001,

Вместо джобов используй триггер на x2.
...
Рейтинг: 0 / 0
несколько режимов работы джоба
    #39437927
Сергей_00001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaRo,
нет, урегулировать не получится, х1 это таблица в которую приходят запросы пользователей о подключении/отключении/изменении параметров услуг в огромном количестве

Vint,
тут скорее не узость мышления, а незнание матчасти и отсутствие опыта, если не сложно можешь на примере показать, как это сделать?

и хотел уточнить по поводу использования триггеров, насколько я знаю, они могут существенно накинуть нагрузки
...
Рейтинг: 0 / 0
несколько режимов работы джоба
    #39438027
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей_00001насколько я знаюНа заборе прочитал?
Сергей_00001на примере показать, как это сделать?Сферический конь в вакууме у каждого свой.
http://www.bugtraq.ru/forum/faq/general/smart-questions.html] RTFM
...
Рейтинг: 0 / 0
несколько режимов работы джоба
    #39438097
Сергей_00001подскажите, как реализовать такую логику в одном джобе ?
Логику вычисления даты и времени следующего запуска джоба нужно реализовывать в собственной хитровылюбленной функции, возвращающей тип DATE, имя которой и указывать в качестве параметра NEXT_DATE джоба.
...
Рейтинг: 0 / 0
несколько режимов работы джоба
    #39438103
Plohoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То есть, если, к примеру, 4,000 записей, то после выполнения не нужно ждать и можно через 5 секунд запустить?
Тут скорее всего дату нужно выставлять этой же процедурой по окончанию работы + 10 секунд к примеру.
З/Ы кто то уже писал про next_date
...
Рейтинг: 0 / 0
несколько режимов работы джоба
    #39438133
XMLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей_00001,

Каждая процедура, реализующая атомарное действие, должна заниматься своим делом, при этом друг про друга такие процедуры знать ничего не должны.
И должна быть процедура, реализующая процесс, иногда их называют оркестраторами. Именно она решает когда должны запускаться процедуры, реализующие атомарные действия.
...
Рейтинг: 0 / 0
несколько режимов работы джоба
    #39438208
JoeD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей_00001,

В одном из проектов вполне себе успешно работал механизм описанный Кайтом или в 2 day developer's guide

Вкратце - фид пишет в таблицу в real time, processed_flag - 'N', функциональный индекс CREATE INDEX ... ON ... (DECODE("PROCESSED_FLAG",'N','N')) содержит ссылки только на необработанные записи. Отдельный джоб крутит бесконечный цикл,
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 cursor c1 is
            select ..
            and    decode(m2.processed_flag, 'N', 'N') = 'N'
....
LOOP
...
fetch c1 bulk collect into...
...
forall i in ...  update ...  set    processed_flag = 'Y'
..
END LOOP;

nexttime у джоба - 1 минута, на случай падений.
Исходная таблица либо не чистится вовсе, либо ночью отдельный джоб заботится об уже обработанных записях. Соответственно если есть новые записи и джобу нечего делать - входящие обрабатываются сразу.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / несколько режимов работы джоба
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]