(Идея дизайна) Лучшая практика для резервирования записи для многопроцессорного механизма рабочего процесса - PullRequest
3 голосов
/ 06 марта 2010

Я разрабатываю несколько процессов для запроса задания из базы данных.

Каждое задание просыпается один раз в минуту для запроса задания и отправки в систему документооборота.

Мне нужен совет о том, какой способ лучше всегомаскировать запись и запрашивать ее, а не дублировать с другим процессом.

Ответы [ 2 ]

2 голосов
/ 06 марта 2010

В Oracle, в зависимости от версии:

10g и ниже - используйте Advanced Queuing. Откажитесь от работы, которую вы поставили в очередь на ключи, которые вы поставили в очередь.

11g и выше - если вы не хотите создавать проблемы с очередями, вы можете использовать предложение SKIP LOCKED и получить свою работу SELECT FOR UPDATE с задачей, над которой нужно работать; думайте об этом как о очереди без необходимости делать PL / SQL-вызовы.

0 голосов
/ 06 марта 2010

при условии, что у вас есть контроль над дизайном базы данных, разве вы не включили бы какой-нибудь флаг? Вы могли бы просто иметь флаг типа да / нет, который может быть слишком простым (?). В качестве альтернативы более подробный подход, который записывает идентичность процесса, который "имеет" запись / задание. Это даст вам более богатый набор данных и более гибкое приложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...