1

これをご覧いただきありがとうございます。

残念ながら、私はレールに不慣れです。現在、Superfeedr が更新をプッシュできるエンドポイントを実装する必要がありますが、そのエンドポイントは Rails コントローラーにある必要があります。

当初、これは実行されるバックグラウンド ジョブであり、Web の残りの部分は同意する傾向があるように思われましたが、これを Rails コントローラーとして含めるように圧力をかけられており、混乱しています。要求/応答サイクルに EventMachine を含める方法がわかりません。

Web には例がたくさんあることは知っていますが、これをルーティングする方法についての私の質問に実際に答えるものはありません。何も思いつきません。

Superfeeds と呼ばれる Rails コントローラーがあります。Superfeeder で更新を myrailsapp/superfeeds/ のようなものにプッシュしたい

フィード内で、プッシュされたコンテンツを検査し、その結果を実際にモデルを持ち、それを永続化する別のコントローラーに書き込みます。

基本的に、Feeds と呼ばれるコントローラーは、情報を受け取って渡すだけで済みます。ただし、レールコントローラー内で長時間実行されるプロセスを実装する必要があるように思われるため、これは私を混乱させます-これが機能するかどうかさえわかりません。

これが Rails で行われたが、EventMachine をバックグラウンド ジョブとして使用していない方法を知っている人はいますか? 最後に、これが可能であることを本当に知る必要があります。

-L

4

1 に答える 1

0

フィード内で、プッシュされたコンテンツを検査し、その結果を実際にモデルを持ち、それを永続化する別のコントローラーに書き込みます。

すべての作業を 1 つのコントローラーで行ってみませんか? さまざまな懸念事項を分離しようとしている場合は、2 つのモデルを使用することもできます。たとえば、1 つは検査/解析を実行し、もう 1 つは永続化を処理します。ただし、コントローラーからコントローラーにデータを渡す必要がある、または渡す必要があることはめったにありません。

要求/応答サイクルに EventMachine を含める方法がわかりません。

自分で superfeedr を使用したことはありませんが、ドキュメントをざっと見ただけで、XMPP または PubSubHubbBub クライアントを使用していますか? 後者だと思いますか?もしそうなら、永続化 (およびその他の時間のかかるプロセス) を非同期 (要求/応答サイクルの外) で行いたいと思いませんか?

Thin などの EventMachine ベースの Web サーバーを使用している場合、基本的にすべての要求サイクルは EM リアクター内で実行されます。そのため、遅延スレッド プールなどのタスクをオフロードするために EM の機能を利用できます。この実際の例については、Enigmamachine、特にここをチェックしてください。(さらに、db クライアント ライブラリは非同期である必要があると思います。)

于 2011-10-19T23:19:59.540 に答える