1

ここでの問題は、このようなものが既に存在するかどうか、または存在しない場合、以下で説明するよりもそれを達成するためのより良い方法があるかどうかです.

任意のプリンシパル (ユーザー、グループ、サイト管理者)がシステム (Event Sink電子メール アドレス、Webhook URL など) を (Web インターフェース経由で) システムに追加できるようにする必要があり、それぞれについて、どの種類のプリンシパルを追加するかを指定する<Event Source, Event Type>必要があります。それに送信されます。私はReviewBoardに対してこれを行っているので、仮想的な実装で具体的な例を示します。

  1. John は;event_sinkで識別される新しい (Webhook)を作成します。postbin1
  2. John は、 が s のタイプのイベントを受信することを指定します(postbin1クラスレベル--は指定されていません)。publishReviewRequestsubscriptionsource_id
  3. newreview_requestが作成されるとEvent Manager、 は ( との JOIN を介してsubscriptions) すべての s にevent_sinks関係するものをリストReviewRequestし、(インスタンス レベルの)subscriptionそれらをリスナーとしてevent_type関心のある特定の (django シグナルの名前)および特定のreview_request;にバインドします。
  4. それreview_requestがパブリッシュされると、Event Manager(シグナルをリッスンする) は、そのインスタンスとシグナルに関心のあるpublishすべてのユーザーをリストし、シグナル パラメーターをメソッドにディスパッチします。event_sinksreview_requestpublishsink
  5. Webhookevent_sinkはデータを適切にマーシャリングし、その URL に POST します。

これは私が考えたスキーマです: 代替テキスト http://bayimg.com/image/aadgoaacd.jpg

私はこれを自分で実装しようとしていますが、車輪を再発明していないことを確認したいだけです. Google で何も見つかりませんでした。すぐに使えるパッケージ名、私を助ける中途半端なパッケージ名、および/または私のDIYアプローチへの批判はすべて大歓迎です.

4

1 に答える 1

1

James Tauber によるdjango-notificationは、そこへの道のりのかなりの部分を取得します。あなたがそのコードベースから離れて作業する気があれば、そのアプリが成熟するのを楽しみにしています。

于 2009-08-27T13:58:14.160 に答える