Ich schreibe eine Webanwendung unter Verwendung der Katalytischer Rahmen . Ich verwende auch eine Auftragswarteschlange namens DieSchwartz .
Ich möchte eine Auftragswarteschlange verwenden, weil ich möchte, dass ein Großteil des anwendungsspezifischen Codes vom Code der Webanwendungsschnittstelle entkoppelt wird.
Im Wesentlichen besteht das gesamte System aus drei Hauptkomponenten:
- GUI (Catalyst-Webschnittstelle)
- Ein Raupenfahrzeug
- Eine "Angriffskomponente" (die App wird geschrieben, um nach XSS- und SQLi-Schwachstellen in anderen Webapps/Sites zu suchen)
Theoretisch erzeugt die GUI also Aufträge für den Crawler, der wiederum Aufträge für die "angreifende Komponente" erzeugt.
Derzeit habe ich ein Modell in Catalyst, das ein TheSchwartz-Objekt instanziiert, damit die Controller in der Webanwendung Aufträge zur Auftragswarteschlange hinzufügen können.
Außerdem muss ich einige Job-Worker-Skripte erstellen, die kontinuierlich auf neue Aufträge warten (bzw. die Datenbank überprüfen), damit sie die erforderlichen Aktionen durchführen können. Derzeit befindet sich das DB-spezifische Material für TheSchwartz im Modell in Catalyst, und ich glaube nicht, dass ich darauf außerhalb von Catalyst leicht zugreifen kann.
Ich möchte die DB-Verbindungsdaten für die TheSchwartz-Warteschlange nicht im Modell und dann in meinen Jobworker-Skripten duplizieren. Sollte ich die Erstellung des TheSchwartz-Objekts in eine andere Klasse außerhalb von Catalyst verpacken und diese in dem Modell aufrufen, das gerade das TheSchwartz-Objekt instanziiert? Dann könnte ich das auch in den Arbeitsskripten verwenden. Oder sollte ich die DB-Daten in einer Konfigurationsdatei haben und neue TheSchwartz-Objekte instanziieren, wenn ich sie brauche (innerhalb von Catalyst/innerhalb der Worker-Skripte)?
Oder denke ich einfach zu viel darüber nach?
Einige Links zu ausführlichen Artikeln über die Architektur von Webanwendungen könnten ebenfalls nützlich sein (ich habe noch nie eine Anwendung von mittlerer Komplexität entwickelt).
Prost