1

ユーザーが投稿したデータを Azure テーブルに保存したいと考えています。また、ユーザーが他のユーザーに何かを投稿するたびに、このユーザーに通知を送信する必要があります。PokeIn を使用して Comet ソリューションを調べて、その方法があるかどうかを確認しました。私はこの手法に慣れていないので、コードを書く前にアプローチを知りたいです。

これまでのところ、この問題に取り組むための私の考えは、サーバーへのリバース ajax 呼び出しを行うことができるということです。そして、サーバーでは、何かが変更された場合、while ループを使用してデータベースを継続的にチェックします。サーバーが過負荷にならないようにスリープ状態になります。ただし、これにより、データベースに多くの不要なチェックが導入されます。ロングポーリングの方法について、以前ここで質問しました。そして、SqlDependency を使用することが提案された答えの 1 つです。ただし、これは MS SQL 固有です。可能であれば、Azure テーブルでそれを行う方法を知りたいです。

一般的なアプローチに対するコメントや回答は大歓迎です。

4

1 に答える 1

3

Windows Azure テーブル (データベースなし) を使用してそのようなソリューションを作成する方法を基本的に最初の段落に投稿した質問に基づいて、この質問に答えています (他の SO 専門家は異なるアプローチをとっている可能性があります)。Windows Azure テーブルは基本的にキーと値のペア データベースであるため、SQLDependency などの機能はありません。

最初のアプローチとして、Windows Azure テーブルと Windows Azure キューを使用して、このようなソリューションを作成できます。Azure Tables に何かを書き込むときは、Azure Queue にメッセージを投稿します。別のスレッドでキューの状態をチェックし続けることができ、メッセージが表示されたら必要なアクションを実行できます。このアプローチの欠点は、常にキューを覗き込む必要があり、ポーリングがどれほど積極的であるかによって異なります。トランザクション コストが追加されますが ($0.001 で約 10,000)、積極的なチェックはすぐに多くなります。

もう 1 つのソリューションは、Windows Azure テーブルとサービス バスを使用することです。Service bus を使用すると、poll を使用する必要がなくなり、代わりに、テーブルに更新があったときに通知され、残りを処理できるソリューションを開発できます。

ユーザーによって実装されたソリューションと、アプリケーションの使いやすさに依存するソリューションの両方を見てきましたが、コストもコーディングの複雑さも異なります。Windows Azure Queue または Service Bus を選択する前に、以下の記事を読んで 2 つの違いを理解し、より適切な決定を下すことをお勧めします。

Windows Azure キューと Windows Azure Service Bus キュー - 比較対照

于 2012-06-30T17:10:28.407 に答える