我正在构建一个Web应用程序,我需要使用允许我在两台服务器上运行它的架构。应用程序定期从其他站点和最终用户的输入中搜索信息。为此,我使用Php + curl来抓取信息,Php或python来解析它并将结果存储在MySQLDB中。
然后我将使用Python在数据上运行一些算法,这将在周期性和最终用户的输入上发生。我将在MySQL DB中缓存一些结果,有时如果它是特定于用户的,则跳过存储数据并将其提供给用户。
我想在单独的Web服务器上使用Php作为网站前端,在另一台服务器上运行Php spider,MySQL DB和python。
我应该在这类工作中使用哪些框架工作? MVC和Cakephp是一个很好的解决方案吗?如果是这样,我将能够使用它来控制和监视Python代码吗?
由于
答案 0 :(得分:2)
如何实施?
这里的答案太大了。当然你不需要2套用于抓取的代码(1个用于计划,1个用于需求)除了添加的复杂功能之外,你真的不想运行作业,这将花费无限的时间在线程内完成通过对Web服务器的请求生成 - 用户对scrape的请求应该通过调度机制运行并报告给用户(尽管如果有必要,您可以使用Ajax轮询来假设它在同一个线程中发生)。
我应该使用哪些框架作品?
框架不是魔法子弹。并且您不应该主要根据您正在编写的应用程序的性质来选择框架。当然,如果某个特定框架排除了特定的关键功能,那么您使用的是错误的框架 - 但根据我从未有过的经验 - 您只需要自己编写一些代码。
使用比cron作业更复杂的东西
是的,一个cron工作可能不是出于很多原因的正确方法。如果是我,我会考虑编写一个守护程序来安排擦除(并接受来自网页脚本的连接以排除其他擦除)。但我会将刮擦作为单独的过程运行。
MVC是一个很好的架构吗? (我是MVC,架构等的新手。)
没有。不要先考虑一个模式是否适合应用程序 - 模式是一个有用的教学工具,但描述代码 而不是将
(您的应用程序可能包含一些MVC模式 - 但它也应该包含许多其他模式)。
下进行。
答案 1 :(得分:1)
我认为您已经清楚了解如何整理图层。
首先,您需要一个适用于您前端的Web框架
你在这里有很多choices,Cakephp afaik是一个不错的选择,它旨在强迫你遵循设计模式MVC。
然后,您需要设计数据库以存储用户想要捕获的内容
您的数据库将被您的Web应用程序访问以存储用户请求,通过您的php脚本知道要抓取什么,最后通过您的python批处理向用户确认所请求的数据是否可用。
可能过度简化的情况: