0

別のユーザーがユーザーに影響を与えるアクションを実行したときにユーザーに通知する必要があるアプリケーションをGAEで構築しています。あなたの友人があなたのFacebookのステータスについてコメントすると、現実世界のアナロジーが警告されます。

Channel APIが実際にリアルタイムで通知を送信する方法を理解していますが、それらの通知をデータストアに保存する最も効果的な方法を理解しようとしています。理想的には、通知コードを実際に実行されているイベントから切り離してほしいと思います。これは、将来の検索の良いユースケースですか?どんな種類の検索も実行する必要がないので、それはまったく正しくありません。新しいコメントが表示された場合は、データストアに保存され、チャネルAPIを介してクライアントにプッシュされる新しい通知を作成します。接続されている。基本的にデータベーストリガーが必要ですが、GAEはそれをサポートしていないと思います。

4

2 に答える 2

1

そもそもイベントとその通知を組み合わせてみませんか?私はあなたのユースケースを助けるために知ることは面白いかもしれないと思います:)

これを行う必要がある場合は、イベントを発生させる可能性のあるものをデータストアに書き込むたびにタスクキューを起動します...そうすれば、書き込みを実行して、イベントを処理するための個別の「レイヤー」を作成できます。アプリケーションはデータベースを「ポーリング」してイベントをユーザーのUIにプッシュする必要があるため、トリガーはそれほど適切なオプションではありません。

プロセス(イベントの発生)はデータベースに属していないと思います。データストアが提供できないビジネスルールが必要になる可能性があるためです。たとえば、ユーザーが別のルールを無視した場合、イベントを発生させないでください。データベースシステムに配置するビジネスロジックが多いほど、IMHOの保守と拡張が複雑になります...

于 2013-03-24T13:37:42.640 に答える
0

GAEは、フックを使用したデータベーストリガーの模倣をサポートしているようです。

フックは

  1. クエリキャッシング
  2. ユーザーごとのデータストアアクティビティの監査
  3. データベーストリガーを模倣する
于 2013-03-23T18:36:30.883 に答える