Web应用程序架构和应用程序服务器?

时间:2010-06-11 10:12:55

标签: php python model-view-controller cakephp application-server

我正在构建一个Web应用程序,我需要使用允许我在两台服务器上运行它的架构。应用程序定期从其他站点和最终用户的输入中搜索信息。为此,我使用Php + curl来抓取信息,Php或python来解析它并将结果存储在MySQLDB中。

然后我将使用Python在数据上运行一些算法,这将在周期性和最终用户的输入上发生。我将在MySQL DB中缓存一些结果,有时如果它是特定于用户的,则跳过存储数据并将其提供给用户。

我想在单独的Web服务器上使用Php作为网站前端,在另一台服务器上运行Php spider,MySQL DB和python。

我应该在这类工作中使用哪些框架工作? MVC和Cakephp是一个很好的解决方案吗?如果是这样,我将能够使用它来控制和监视Python代码吗?

由于

2 个答案:

答案 0 :(得分:2)

  

如何实施?

这里的答案太大了。当然你不需要2套用于抓取的代码(1个用于计划,1个用于需求)除了添加的复杂功能之外,你真的不想运行作业,这将花费无限的时间在线程内完成通过对Web服务器的请求生成 - 用户对scrape的请求应该通过调度机制运行并报告给用户(尽管如果有必要,您可以使用Ajax轮询来假设它在同一个线程中发生)。

  

我应该使用哪些框架作品?

框架不是魔法子弹。并且您不应该主要根据您正在编写的应用程序的性质来选择框架。当然,如果某个特定框架排除了特定的关键功能,那么您使用的是错误的框架 - 但根据我从未有过的经验 - 您只需要自己编写一些代码。

  

使用比cron作业更复杂的东西

是的,一个cron工作可能不是出于很多原因的正确方法。如果是我,我会考虑编写一个守护程序来安排擦除(并接受来自网页脚本的连接以排除其他擦除)。但我会将刮擦作为单独的过程运行。

  

MVC是一个很好的架构吗? (我是MVC,架构等的新手。)

没有。不要先考虑一个模式是否适合应用程序 - 模式是一个有用的教学工具,但描述代码 而不是

(您的应用程序可能包含一些MVC模式 - 但它也应该包含许多其他模式)。

下进行。

答案 1 :(得分:1)

我认为您已经清楚了解如何整理图层。

首先,您需要一个适用于您前端的Web框架 你在这里有很多choices,Cakephp afaik是一个不错的选择,它旨在强迫你遵循设计模式MVC
然后,您需要设计数据库以存储用户想要捕获的内容 您的数据库将被您的Web应用程序访问以存储用户请求,通过您的php脚本知道要抓取什么,最后通过您的python批处理向用户确认所请求的数据是否可用。

可能过度简化的情况:

  1. 用户注册到您的网站
  2. 从维基百科中获取随机页面的用户命令
  3. 请求通过CakePhp应用程序存储到db
  4. Cron php批处理启动并检查数据库是否有新请求
  5. 批量创建了来自维基百科的新请求和摘要
  6. 使用抓取标志批量更新数据库
  7. Cron python批处理启动并检查db是否有新的已删除标记
  8. 批量创建新的刮取标记并解析维基百科以提取一些标记
  9. 使用完成标志批量更新数据库
  10. 用户在他的个人资料中找到了所需的信息。