У меня есть приложение 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, запускает свои функции и отправляет электронную почту.
Проблемы :
- ProcessFileBean и EmailSenderBean должны быть обработаны в только эта последовательность
- Beans можно отключить. Если ProcessFileBean отключен, EmailSenderBean будет выполняться напрямую. В настоящее время для этого необходимо прокомментировать отображение соответствующего состояния, связанного с компонентом. -> Например: если Bean3 работает в состоянии 3, EmailSenderBean должен быть отключен, тогда ProcessFileBean должен быть изменен, чтобы обновить состояние закрытия до 3 вместо 2.
Чего я хочу достичь :
- Во всем коде таких бинов и состояний 10. Я хочу удалить жесткое кодирование состояний для соответствующих bean-компонентов. Если Bean2 отключен, Bean1 должен знать из БД или каким-либо другим способом, какое состояние должно быть обновлено. Bean3 должен автоматически вызываться с использованием конфигурации без изменения уровня кода.
- Я подумал о получении конфигурации состояний из XML или БД, Bean1 узнает, используя конфигурацию, в каком состоянии он должен опрашивать, и какое состояние закрытия для этого bean-компонента.
- Но я помещаю это в stackoverflow, чтобы узнать, есть ли какие-то лучшие рабочие процессы проектирования?
Спасибо, Ридхи