Я пишу веб-приложение, используя Catalyst framework. Я также использую очередь заданий под названием TheSchwartz.
Я хочу использовать очередь заданий, потому что мне нужно, чтобы большая часть кода приложения была отделена от кода интерфейса веб-приложения.
По сути, вся система состоит из трех основных компонентов:
- GUI (веб-интерфейс Catalyst)
- Гусеничный
- «Атакующий компонент» (приложение пишется для поиска уязвимостей XSS и SQLi в других веб-приложениях/сайтах)
Таким образом, теоретически графический интерфейс создает задания для сканера, который, в свою очередь, создает задания для «атакующего компонента».
В настоящее время у меня есть модель в Catalyst, которая создает экземпляр объекта TheSchwartz, чтобы контроллеры в веб-приложении могли добавлять задания в очередь заданий.
Мне также нужно создать несколько сценариев рабочих заданий, которые постоянно прослушивают (/проверяют базу данных) новые задания, чтобы они могли выполнять необходимые действия. В настоящее время специфичные для БД материалы для TheSchwartz находятся в модели в Catalyst, и я не думаю, что смогу легко получить к ним доступ вне Catalyst?
Я не хочу дублировать данные подключения к БД для очереди заданий TheSchwartz в модели, а затем в моих рабочих сценариях. Должен ли я обернуть создание объекта TheSchwartz в другой класс, находящийся вне Catalyst, и вызвать его в модели, которая в настоящее время создает экземпляр объекта TheSchwartz? Тогда я мог бы также использовать это в рабочих скриптах. Или я должен иметь данные БД в файле конфигурации и создавать экземпляры новых объектов TheSchwartz по мере необходимости (внутри сценариев Catalyst/внутри рабочих заданий)?
Или я просто слишком много думаю об этом?
Некоторые ссылки на содержательные статьи об архитектуре веб-приложений также могут быть полезны (я никогда раньше не создавал статьи средней сложности...).
Ваше здоровье