Django中用户可配置的信令机制

时间:2009-08-13 22:52:02

标签: django schema signals notifications webhooks

这里的问题是这样的事情是否已经存在,或者如果没有,是否有比我下面描述的更好的方法来实现它。

我需要允许任意Principal(用户,组,站点管理员)将Event Sink(如电子邮件地址,Webhook URL等)添加到系统(通过Web界面)并且,对于每一个,指定应向其发送哪种<Event Source, Event Type>。因为我是为ReviewBoard做的,所以我将给出一个假设实现的具体例子:

  1. John创建了一个新的event_sink(a webhook),由postbin1;
  2. 标识
  3. John指定postbin1将在publish上收到ReviewRequest类型的事件(班级subscription - source_id未指定);
  4. 创建新的review_request后,Event Manager列出(通过与subscriptions的加入)对event_sinks感兴趣的所有ReviewRequest并创建(实例级别)subscription将它们绑定为对特定event_type感兴趣的特定review_request(django信号的名称)的特定review_request;
  5. Event Manager发布后,publish(听取event_sinks信号的人)会列出对该review_request个实例感兴趣的所有publish和{ {1}}发信号并将信号参数调度到sink方法。
  6. Webhook event_sink会对数据进行整理,但请将其发送到其网址。
  7. 这是我想到的架构: alt text http://bayimg.com/image/aadgoaacd.jpg

    我即将开始自己实施,但我只是想确保我不会重新发明轮子。在Google上找不到任何内容。随时可以使用包装名称,帮助我的中途包装名称和/或批评我的DIY方法。

3 个答案:

答案 0 :(得分:1)

我曾经构建something very similar,但是作为一个小型的REST应用程序(在TurboGears中)。

从来没有把性能和可靠性提升到可以用于任何严重事情的地方。它是在webhooks开始生根之前设计的,所以我现在可能会考虑到这一点。

由于我现在也在Django工作,我很想知道你的想法。我认为你的设计是正确的,这种事件调度员非常有用,值得一试。

答案 1 :(得分:1)

詹姆斯·陶伯的

django-notification为你带来了很多好处。我很乐意看到这个应用程序成熟,如果你愿意在代码库中工作那就太棒了。

答案 2 :(得分:1)

这不是pub / sub的案例吗?也许像that