我正在使用Catalyst 框架编写一个 Web 应用程序。我还使用了一个名为TheSchwartz的作业队列。
我想要使用作业队列,因为我想要尽可能多的应用程序特定代码与 Web 应用程序接口代码分离。
基本上整个系统由三个主要部分组成:
- GUI(催化剂网络界面)
- 一个爬虫
- 一个“攻击组件”(正在编写该应用程序以查找其他 Web 应用程序/站点中的 XSS 和 SQLi 漏洞)
所以理论上 GUI 为爬虫创建作业,而爬虫又为“攻击组件”创建作业。
目前我在 Catalyst 中有一个模型,它实例化了一个 TheSchwartz 对象,以便网络应用程序中的控制器可以将作业添加到作业队列中。
我还需要创建一些作业工作者脚本来持续侦听(/检查数据库)新作业,以便他们可以执行所需的操作。目前,TheSchwartz 的数据库特定内容位于 Catalyst 的模型中,我认为我无法在 Catalyst 之外轻松访问它?
我不想在模型中复制 TheSchwartz 作业队列的数据库连接数据,然后在我的作业工作者脚本中复制。我是否应该将 TheSchwartz 对象的创建包装在 Catalyst 之外的另一个类中,并在当前实例化 TheSchwartz 对象的模型中调用它?然后我也可以在工作脚本中使用它。或者我应该将数据库数据放在配置文件中,并在需要时实例化新的 TheSchwartz 对象(在 Catalyst 中/在作业工作者脚本中)?
还是我只是在想这个?
一些指向丰富的网络应用程序架构文章的链接也可能有用(我以前从未构建过中等复杂性的文章......)。
干杯