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

Я занимаюсь разработкой нескольких процессов. Я развернул 4 сервиса на Websphere и нашел идею, как их разбудить. Текущее решение

1 Кварц будет запускать процесс каждую минуту, если последний процесс уже запущен, этот процесс не будет запускаться дубликатом (используйте для управления статическую переменную java).

2 Обработка запроса максимум до 200 записей.

2 Процесс создаст поток параллелизма максимум до 50 для обработки задания.

3 Обработайте сон 5 секунд и проверьте, есть ли свободное место для обработки больше.

4 Если нет записей для обработки, процесс извлечет данные из следующих 200 записей

5 если данных нет, процесс завершится, дождитесь кварца, чтобы проснуться позже

Что вы думаете об этом? У тебя есть другая идея?

Ответы [ 2 ]

1 голос
/ 27 сентября 2010

Я не уверен, как ваша система связана с рабочим процессом.Термин «рабочий процесс» обычно означает, что система управляет задачами, требующими участия человека.Вы описываете простой механизм обработки, который берет свою работу из таблицы базы данных.Для такой работы это, вероятно, будет работать нормально, но на самом деле это не «лучшая практика».

Я бы предложил два изменения.

  1. Ваше приложение должно иметьвнутренний пул потоков для обработки заданий.Создание нового потока для обработки каждого задания не требуется.Сделайте пул потоков настраиваемым, чтобы вы могли быстро и легко увеличивать или уменьшать его размер.

  2. Ваше приложение должно иметь интерфейс очереди (например, JMS) для получения заданий, а не многократного чтения таблицы базы данных..

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

Фраза «лучшая практика» часто используется в качестве оправдания, чтобы не думать о вещах.

Но я бы сказал, что любое решение, включающее сон в течение нескольких секунд, является , а не наилучшей практикой.

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