0



首先让我提一下,我是网络框架的新手。

我必须为 Uni 项目编写我的第一个网络应用程序。我花了两周时间学习 Grails 和 Django。昨天开始使用 Rails 并喜欢它。所以我决定接受它并放弃我在其他框架中的工作。

关于应用程序
它应该是一个 Twitter 应用程序,它利用 Twitter 的 Streaming API 来记录匹配一组指定过滤器的推文。(我将使用 Tweetstream gem,它负责连接到 Twitter 并捕获匹配的推文)。

该应用程序的 Web 界面应具有以下功能 -

  • 创建新请求
    用户输入现有 PostgreSQL 或 MySQL 数据库的一组过滤器参数(要跟踪的关键字)和 URL/用户名/密码。

    创建请求时,Web 应用程序会生成一个后台 ruby​​ 进程。此过程通过 Tweetstream gem 连接到 Twitter。它还连接到用户指定的数据库以存储收到的推文。
  • 查看/终止现有请求
    用户应该能够通过访问诸如 /listRequests 之类的 URL 来查看作为后台进程运行的请求列表。
  • 查看有关进程的更多详细信息/终止进程
    用户应该能够转到 /requests/1/detail 等 URL 以查看一些详细信息(例如,请求运行了多长时间,捕获的推文数量等)。用户还应该能够终止进程。

我的经验不足,因为我无法理解-

  • 我的模型应该是什么(也许请求应该是模型。推文不需要是模型,因为它没有存储在本地)
  • 我将如何连接到远程数据库。
  • 我如何创建后台进程(backgroundrb??)并将它们与请求对象相关联,以便我可以在用户询问时终止。

    归根结底,我必须自己建造它,所以我不要求你为我设计它。但是一些正确方向的指示将非常有帮助和赞赏!

    谢谢!

  • 4

    2 回答 2

    1

    唔。

    由于 Web 应用程序只是繁重流程的一个薄包装,因此在这里使用像Sinatra这样的东西可能更合适。Rails 是一个很大的框架,它包含了很多你在这个项目中不需要的东西,即使它可以工作

    这里的“后台进程”要求是严格意义上的独立进程,还是仅仅意味着并发?TweetStream 使用 EventMachine gem 来处理更新,它为每个连接使用一个单独的线程。很可能从一个简单的 Sinatra Web 应用程序生成 TweetStream 客户端,将它们保存在一个大数组中,让它们全部同时运行而没有任何问题,并stop在您希望它停止时简单地在给定客户端上运行。不需要数据库或任何东西。

    我不确定你的教授到底在找你做什么,但 MVC 并不适合。与需求一起工作比将其混入与它不匹配的设计模式更好:/

    即便如此,我 <3 Rails!当您主要使用数据库中表示的对象时,一定要这样做:)

    于 2010-11-21T03:56:47.853 回答
    1

    相当的一个项目。大多数具有挑战性的东西与 Rails 本身无关,而是与后台进程的集成。backgroundrb 有点过时了。主 github 项目的最后一次提交是一年多以前,因此 Rails 3 可能无法满足。四处搜索并评估您的选择。Resque 很受欢迎,但我不确定您的实时需求是否与其基于队列的结构相匹配。

    至于你的应用,我只看到一个模型,但不要称之为请求。这是rails中的保留名称。也许是搜索模型,或者类似的东西。

    连接到不同的数据库很简单,但需要在操作期间直接配置 ActiveRecord 类,而不是使用 database.yml。

    于 2010-11-21T03:49:26.697 回答