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

Откуда: Москва
Сообщений: 131
Всем добрый день!
Дано - в таблицу пишутся записи многими сессиями. Они должны обрабоатываться процедурой, но процедура достаточно большая - требует много ресурсов и должна запускаться через некоторе время, поэтому запуск по триггреу - не вариант. Нужно, чтобы записи обрабатывались последовательно, так как будет обработано через 10 минту или через час - не столь критично, главное - чтобы не создавала излишнюю нагрузку для сервера. Как такое лучше реализовать? DBMS_ALERT не подходит, так как он траказанционен.
DBMS_PIPE - наверное то, что надо, но вопрос - как запускаеться процесс, что читает из канала? Он же должен все время висеть и ждать сигнала? Или считывать? Подскажите, пожалуйста, как лучше организовать?
23 июл 08, 13:32    [5974052]     Ответить | Цитировать Сообщить модератору
 Re: Фоновый процесс - как лучше реализовать  [new]
Proteus
Member

Откуда:
Сообщений: 1348
AQ ?
23 июл 08, 13:36    [5974074]     Ответить | Цитировать Сообщить модератору
 Re: Фоновый процесс - как лучше реализовать  [new]
Elic
Member

Откуда:
Сообщений: 29990
RTFM DBMS_JOB (FAQ)
23 июл 08, 13:37    [5974082]     Ответить | Цитировать Сообщить модератору
 Re: Фоновый процесс - как лучше реализовать  [new]
Proteus
Member

Откуда:
Сообщений: 1348
Elic
RTFM DBMS_JOB (FAQ)

Мне показалось, что топикстартер хотел обработку вынести с этой базы из-за ресурсоёмкости алгоритма обработки... Хотя...
23 июл 08, 13:52    [5974241]     Ответить | Цитировать Сообщить модератору
 Re: Фоновый процесс - как лучше реализовать  [new]
Elic
Member

Откуда:
Сообщений: 29990
Proteus
Мне показалось, что топикстартер хотел обработку вынести с этой базы из-за ресурсоёмкости алгоритма обработки...
Не "с этой базы", а из этой транзакции.
Proteus
Хотя...
Вдобавок, для правильного ответа достаточно прочитать только subj :)
23 июл 08, 14:10    [5974414]     Ответить | Цитировать Сообщить модератору
 Re: Фоновый процесс - как лучше реализовать  [new]
Proteus
Member

Откуда:
Сообщений: 1348
Elic
Proteus
Мне показалось, что топикстартер хотел обработку вынести с этой базы из-за ресурсоёмкости алгоритма обработки...
Не "с этой базы", а из этой транзакции.
Proteus
Хотя...
Вдобавок, для правильного ответа достаточно прочитать только subj :)


автор
главное - чтобы не создавала излишнюю нагрузку для сервера


Ну, может ты и прав. Но мне не понятно одно, как можно сделать фоновый процесс, который будет крутится на этой же базе и не отъедать у неё ресурсы... Если же говорить о отнесении обработки по времени, то это не фоновый процесс, а отложенная обработка.
23 июл 08, 14:22    [5974525]     Ответить | Цитировать Сообщить модератору
 Re: Фоновый процесс - как лучше реализовать  [new]
svirol
Member

Откуда: Москва
Сообщений: 131
В таблицу могут писать куча сессий, а обрабоатывться должно последовательно, одна запись в момент времени, что снизит нагрузку.
23 июл 08, 15:06    [5974886]     Ответить | Цитировать Сообщить модератору
 Re: Фоновый процесс - как лучше реализовать  [new]
svirol
Member

Откуда: Москва
Сообщений: 131
Elic
RTFM DBMS_JOB (FAQ)

Думаете, DBMS_JOB подойдет? То есть, грубо - каждые 10 минту запрашивать очередь? А как избежать того, что предыдущий процесс не отработал а стартует следующий? Это если очень часто запускать. А если редко - то будет задержка в обработке.
23 июл 08, 17:19    [5975986]     Ответить | Цитировать Сообщить модератору
 Re: Фоновый процесс - как лучше реализовать  [new]
Elic
Member

Откуда:
Сообщений: 29990
svirol
А как избежать того, что предыдущий процесс не отработал а стартует следующий?
Более одной копии job-а не может работать одновременно по-определению.
23 июл 08, 17:22    [5976012]     Ответить | Цитировать Сообщить модератору
 Re: Фоновый процесс - как лучше реализовать  [new]
svirol
Member

Откуда: Москва
Сообщений: 131
Elic
svirol
А как избежать того, что предыдущий процесс не отработал а стартует следующий?
Более одной копии job-а не может работать одновременно по-определению.

Спасибо большое, кажется, пока вопросов больше нет.
23 июл 08, 17:32    [5976090]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить