2010-06-11 123 views
3

我正在构建一个Web应用程序,我需要使用允许我通过两台服务器运行它的体系结构。该应用程序会定期从其他网站刮取信息,并根据最终用户的输入进行刮取。为此,我使用Php + curl来刮取信息,Php或python解析它并将结果存储在MySQLDB中。Web应用程序体系结构和应用程序服务器?

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

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

我应该使用什么框架工作来完成这种工作? MVC和CakePHP是一个很好的解决方案吗?如果能的话,我将能够使用它来控制和监控Python代码?

谢谢

回答

2

怎么去实现呢?

这里的答案太大了。当然,除了增加的复杂性之外,你不需要两组代码(一个用于预定,另外一个用于需求),你真的不想要运行在线程中需要无限期时间完成的工作通过请求到您的网络服务器生成 - 用户请求刮脸应通过调度机制运行并报告给用户(尽管如果有必要,您可以使用Ajax轮询给出错觉,它发生在同一线程中)。

应该使用什么样的框架?

框架不是神奇的子弹。而且您不应该主要根据您正在编写的应用程序的性质来选择框架。当然,如果特定的关键功能被特定的框架阻止,那么您使用的是错误的框架 - 但根据我的经验,从来没有这样 - 你只需要自己编写一些代码。

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

是,cron作业可能不是去很多原因的正确途径。如果是我,我会考虑编写一个守护进程来安排进程(并接受来自网页脚本的连接以排入更多的进程)。但我会将这些擦伤作为单独的过程运行。

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

号不要通过思考模式是否符合应用程序启动 - 模式对于教学一个有用的工具,但描述什么码今非昔比(您的应用程序可能包含一些MVC模式 - 但它也应该包含许多其他模式)。

C.

1

我想你已经清楚如何组织图层的想法。

首先,您需要为您的前端使用Web框架。
您在这里有很多choices,Cakephp afaik是一个不错的选择,它的设计目的是强制您遵循设计模式MVC
然后,你需要设计你的数据库来存储用户想要的蜘蛛。
您的数据库将被您的Web应用程序访问以存储用户的请求,通过您的PHP脚本知道要刮取什么,最后通过您的python批处理确认用户所请求的数据是否可用。

一种可能过于简单的情景:

  1. 用户注册到您的网站
  2. 用户命令从维基百科抢随机页面
  3. 请求存储虽然CakePHP程序到数据库
  4. 的Cron PHP批次启动并检查数据库的新请求
  5. 批次从维基百科创建新请求和擦除
  6. B ATCH更新分贝刮标志
  7. 克龙蟒一批启动并检查新的刮标志分贝
  8. 批创立新的擦挂国旗和解析维基百科提取一些标签与完成标志
  9. 用户
  10. 批量更新数据库在他的个人资料中找到了所需的信息。
相关问题