Преобразование рабочего процесса приложения на основе состояния в динамический c дизайн вызова в JAVA - PullRequest
0 голосов
/ 09 мая 2020

У меня есть приложение java, в котором каждый процесс разделен на классы java (компоненты Spring). Например:

ProcessFileBean  , runs if request's state=1
EmailSenderBean   , runs if request's state=2

DB возвращает запросы, которые должны быть обработаны с их значением состояния, например:

Request ID 1000, current State=1
Request ID 1001, current State=2

ProcessFileBean получает записи с состоянием = 1, выполняет свои функции и обновляет состояние в DB на 2. EmailSenderBean получает записи с состоянием = 2, запускает свои функции и отправляет электронную почту.

Проблемы :

  1. ProcessFileBean и EmailSenderBean должны быть обработаны в только эта последовательность
  2. Beans можно отключить. Если ProcessFileBean отключен, EmailSenderBean будет выполняться напрямую. В настоящее время для этого необходимо прокомментировать отображение соответствующего состояния, связанного с компонентом. -> Например: если Bean3 работает в состоянии 3, EmailSenderBean должен быть отключен, тогда ProcessFileBean должен быть изменен, чтобы обновить состояние закрытия до 3 вместо 2.

Чего я хочу достичь :

  1. Во всем коде таких бинов и состояний 10. Я хочу удалить жесткое кодирование состояний для соответствующих bean-компонентов. Если Bean2 отключен, Bean1 должен знать из БД или каким-либо другим способом, какое состояние должно быть обновлено. Bean3 должен автоматически вызываться с использованием конфигурации без изменения уровня кода.
  2. Я подумал о получении конфигурации состояний из XML или БД, Bean1 узнает, используя конфигурацию, в каком состоянии он должен опрашивать, и какое состояние закрытия для этого bean-компонента.
  3. Но я помещаю это в stackoverflow, чтобы узнать, есть ли какие-то лучшие рабочие процессы проектирования?

Спасибо, Ридхи

...