【发布时间】:2009-08-29 20:13:17
【问题描述】:
这里的问题是这样的东西是否已经存在,或者,如果没有,是否有比我在下面描述的更好的方法来实现它。
我需要允许任意主体(用户、组、站点管理员)将 Event Sinks(如电子邮件地址、Webhook URL 等)添加到系统(通过 Web 界面),并且对于每个一、指定哪些<Event Source, Event Type>应该发送给它。由于我是为ReviewBoard 执行此操作,因此我将给出一个假设实现的具体示例:
- John 创建了一个新的
event_sink(一个 webhook),由postbin1标识; - John 指定
postbin1将在ReviewRequests 上接收publish类型的事件(类级别subscription——source_id未指定); - 创建新的
review_request时,Event Manager列出(通过与subscriptions的连接)所有对ReviewRequests 感兴趣的event_sinks,并创建一个(实例级)subscription绑定它们作为他们感兴趣的特定event_type(django 信号的名称)的听众和特定review_request; - 当
review_request发布时,Event Manager(监听publish信号)列出所有对review_request实例和publish信号感兴趣的event_sinks,并将信号参数分派给他们的sink方法。 - Webhook
event_sink可以随意编组数据并将其发布到其 URL。
这是我想到的架构: alt text http://bayimg.com/image/aadgoaacd.jpg
我将自己开始实施此功能,但我只是想确保我不会重新发明轮子。在谷歌上找不到任何东西。欢迎使用现成的包名称、对我有帮助的中途包名称和/或对我的 DIY 方法的批评。
【问题讨论】:
标签: django schema signals notifications webhooks