這裏的問題是,這樣的事情是否已經存在,或者如果不存在,是否有更好的方式來實現它,而不是我下面描述的。Django中用戶可配置的信號機制
我需要讓任意主體(用戶,組,網站管理)增加Event Sink
S(如電子郵件地址,網址Webhook等),系統(通過Web界面),對於每一個,指定應將哪種<Event Source, Event Type>
發送給它。因爲我做這個ReviewBoard,我給一個假設實現一個具體的例子:
- 約翰創建一個新的
event_sink
(一 網絡掛接),由postbin1
鑑定; - 約翰指定
postbin1
將收到ReviewRequest
S(一類級subscription
- 的source_id
是不確定的)publish
類型的事件; - 當一個新的
review_request
被創建時,Event Manager
,列表(通過JOIN與subscriptions
)所有event_sinks
興趣ReviewRequest
S和創建(實例級)subscription
結合他們作爲一個聽者其特定event_type
(的名稱django信號)感興趣的和到具體的review_request
; - 當該
review_request
被公佈後,Event Manager
(誰聽的publish
信號),列出了所有event_sinks
感興趣的是review_request
實例和publish
信號和調度信號參數的sink
方法。 - Webhook
event_sink
將數據封送然後取出並將其張貼到其URL。
這是我想到的架構: alt text http://bayimg.com/image/aadgoaacd.jpg
我即將開始這個實施自己,但我只是想確保我不會重新發明輪子。在Google上找不到任何內容。準備使用的軟件包名稱,對我有幫助的中途軟件包名稱和/或對我的DIY方法的批評都是受歡迎的。