ここでの問題は、このようなものが既に存在するかどうか、または存在しない場合、以下で説明するよりもそれを達成するためのより良い方法があるかどうかです.
任意のプリンシパル (ユーザー、グループ、サイト管理者)がシステム (Event Sink
電子メール アドレス、Webhook URL など) を (Web インターフェース経由で) システムに追加できるようにする必要があり、それぞれについて、どの種類のプリンシパルを追加するかを指定する<Event Source, Event Type>
必要があります。それに送信されます。私はReviewBoardに対してこれを行っているので、仮想的な実装で具体的な例を示します。
- John は;
event_sink
で識別される新しい (Webhook)を作成します。postbin1
- John は、 が s のタイプのイベントを受信することを指定します(
postbin1
クラスレベル--は指定されていません)。publish
ReviewRequest
subscription
source_id
- new
review_request
が作成されるとEvent Manager
、 は ( との JOIN を介してsubscriptions
) すべての s にevent_sinks
関係するものをリストReviewRequest
し、(インスタンス レベルの)subscription
それらをリスナーとしてevent_type
関心のある特定の (django シグナルの名前)および特定のreview_request
;にバインドします。 - それ
review_request
がパブリッシュされると、Event Manager
(シグナルをリッスンする) は、そのインスタンスとシグナルに関心のあるpublish
すべてのユーザーをリストし、シグナル パラメーターをメソッドにディスパッチします。event_sinks
review_request
publish
sink
- Webhook
event_sink
はデータを適切にマーシャリングし、その URL に POST します。
これは私が考えたスキーマです: 代替テキスト http://bayimg.com/image/aadgoaacd.jpg
私はこれを自分で実装しようとしていますが、車輪を再発明していないことを確認したいだけです. Google で何も見つかりませんでした。すぐに使えるパッケージ名、私を助ける中途半端なパッケージ名、および/または私のDIYアプローチへの批判はすべて大歓迎です.