0



まず、私はWebフレームワークを初めて使用します。

Uniプロジェクト用の最初のWebアプリを作成する必要があります。GrailsとDjangoの学習に2週間を費やしました。昨日Railsでの作業を開始し、それを気に入りました。それで、私はそれを使って、他のフレームワークで自分の作業を破棄することにしました。

アプリについて
TwitterのストリーミングAPIを利用して、指定されたフィルターのセットに一致するツイートを記録するTwitterアプリを想定しています。(Twitterへの接続と一致するツイートのキャプチャを処理するTweetstream gemを使用します)。

アプリのウェブインターフェースには次の機能が必要です-

  • 新しいリクエスト
    の作成ユーザーは、既存のPostgreSQLまたはMySQLデータベースの一連のフィルターパラメーター(追跡するキーワード)とURL/ユーザー名/パスワードを入力します。

    リクエストが作成されると、ウェブアプリはバックグラウンドのルビープロセスを生成します。このプロセスは、Tweetstreamgemを介してTwitterに接続します。また、ユーザーが指定したデータベースに接続して、受信したツイートを保存します。
  • 既存のリクエスト
    の表示/終了ユーザーは、/ listRequestsなどのURLにアクセスすることで、バックグラウンドプロセスとして実行されているリクエストのリストを表示できる必要があります。
  • プロセスの詳細を表示/プロセスを終了
    ユーザーは/requests/ 1 / detailなどのURLにアクセスして、詳細(リクエストの実行時間、キャプチャされたツイートの数など)を表示できる必要があります。ユーザーは、プロセスを終了できる必要もあります。

理解できないので、私の経験不足が表れています-

  • 私のモデルはどうあるべきか(おそらくリクエストはモデルである必要があります。ツイートはローカルに保存されていないため、モデルである必要はありません)
  • リモートデータベースに接続する方法。
  • バックグラウンドプロセス(backgroundrb ??)を作成し、それらをリクエストオブジェクトに関連付けて、ユーザーが要求したときに終了できるようにするにはどうすればよいですか。

    結局のところ、私はこれを自分で作成する必要があるので、私のためにこれを設計するようにあなたに求めているのではありません。しかし、正しい方向へのいくつかのポインタは非常に役立ち、高く評価されます!

    ありがとう!

  • 4

    2 に答える 2

    1

    かなりのプロジェクト。やりがいのあることのほとんどは、レール自体に関係するのではなく、バックグラウンドプロセスとの統合に関係しています。backgroundrbは少し時代遅れです。メインのgithubプロジェクトの最後のコミットは1年以上前なので、Rails3を嗅ぎ分けることはできないでしょう。周りを検索してオプションを評価してください。Resqueは人気がありますが、リアルタイムのニーズがキューベースの構造と一致するかどうかはわかりません。

    あなたのアプリに関しては、私は単一のモデルしか見ていませんが、それをリクエストとは呼びません。これは、Railsで予約されている名前です。おそらく検索モデル、またはその線に沿った何か。

    異なるデータベースへの接続は簡単ですが、database.ymlを使用するのではなく、操作中にActiveRecordクラスを直接構成する必要があります。

    于 2010-11-21T03:49:26.697 に答える
    1

    うーん。

    Webアプリは、手間のかかるプロセスの単なる薄いラッパーであるため、ここではSinatraのようなものを使用する方が適切な場合があります。Railsは、このプロジェクトでは機能しないものの、必要のないものをたくさん取り込む大きなフレームワークです

    ここでの「バックグラウンドプロセス」要件は、厳密には別個のプロセスを意味するのでしょうか、それとも単に並行性を意味するのでしょうか。TweetStreamは、EventMachine gemを使用して、更新が発生したときに更新を処理します。更新は、接続ごとに個別のスレッドを使用します。単純なSinatraWebアプリからTweetStreamクライアントを生成し、それらを大きな配列に保持し、すべてを問題なく同時に実行stopし、停止したいときに特定のクライアントで実行することは非常に可能です。データベースなどは必要ありません。

    あなたの教授がここで何をするためにあなたを探しているのか正確にはわかりませんが、MVCは実際には適合しません。要件に一致しないデザインパターンにマッシュアップするよりも、要件を処理する方が適切です:/

    それでも、私は3レール未満です!主にデータベースで表現されているオブジェクトを操作しているときは、間違いなくそれを理解してください:)

    于 2010-11-21T03:56:47.853 に答える