Estoy escribiendo una aplicación web usando el Catalyst framework. También estoy usando una cola de trabajos llamada TheSchwartz.¿Cómo debo estructurar mejor mi aplicación web usando colas de trabajos [y Perl/Catalyst]?
Estoy queriendo usar una cola de trabajos porque estoy queriendo la mayor parte del código específico de la aplicación desacoplado del código de la interfaz de la aplicación web.
Esencialmente todo el sistema consta de tres componentes principales:
- GUI (interfaz Catalizador web)
- Un rastreador
- Un "atacar componente" (la aplicación se está escribiendo para buscar XSS y vulnerabilidades SQLi en otros sitios) webapps/
por lo tanto, en teoría, la interfaz gráfica de usuario crea puestos de trabajo para el rastreador que a su vez crea puestos de trabajo para el "componente de atacar".
Actualmente tengo un modelo en Catalyst que ejemplifica un objeto TheSchwartz para que los controladores en la aplicación web puedan agregar trabajos a la cola de trabajos.
También necesito crear algunos scripts de trabajador de trabajos que escuchen continuamente (/ comprueben la base de datos) para nuevos trabajos para que puedan realizar las acciones requeridas. Actualmente, el material específico de DB para TheSchwartz está en el Model in Catalyst y no creo que pueda acceder fácilmente a eso fuera de Catalyst.
No quiero duplicar los datos de conexión de DB para la cola de trabajos de TheSchwartz en el Modelo y luego en los scripts de mi trabajador del trabajo. ¿Debería envolver la creación del objeto TheSchwartz en otra clase que se encuentra fuera de Catalyst y llamarlo en el modelo que está instanciando actualmente el objeto The Schwartz? Entonces también podría usar eso en los scripts de los trabajadores. ¿O debería tener los datos de la base de datos en un archivo de configuración y crear una instancia de los objetos TheSchwartz nuevos cuando los necesite (dentro de Catalyst/dentro de los scripts del trabajador del trabajo)?
¿O acabo de pensar en esto?
Algunos enlaces a artículos de arquitectura carnosos de la aplicación web también pueden ser útiles (nunca he creado uno de complejidad moderada antes ...).
Saludos
Una buena cantidad de modelos no funcionarán si lo hace. Deja la clase de aplicación vacía y la configuración no inicializada, y no llama a ACCEPT_CONTEXT, por lo que los modelos escritos de acuerdo con el patrón de adaptador * recommended * no funcionarán en absoluto. – hobbs