【问题标题】:python django implementing subscriberspython django 实现订阅者
【发布时间】:2013-05-08 10:26:39
【问题描述】:

我有一个非常简单的网络应用程序。一个学生进来,他在其中一个科目上写了一个笔记。每个主题都有订阅者数量。与 stackoverflow 标签类似,一旦将标签添加到问题中,就会通知订阅者。

与我的应用类似,我想添加订阅者,因此一旦为特定主题创建了注释,该主题的所有订阅者都会被邮寄。

我的数据库模型如下 -

class Subject(models.Model):
//some vlaues here 

class Note(models.Model):
    title = models.CharField(max_length=200)
    description = models.TextField()
    author = models.ForeignKey(User)
    subject = models.ForeignKey(Subject)

class SubscriptionModel(models.Model):
    subject = models.ForeignKey(Subject)
    subscriber = models.ForeignKey(User)

有几种实现方式 -

  1. 创建笔记后,可以触发 post_save 信号以向该主题的所有订阅者发送电子邮件。

  2. 可以用 pub-sub 来做一些事情。

  3. 可以使用 RSS 提要进行某些操作。

我不确定实现它的可扩展方法是什么,任何帮助或指针将不胜感激,谢谢。

【问题讨论】:

    标签: python django rss publish-subscribe django-signals


    【解决方案1】:

    信号是同步的,因此在保存信号中完成邮件会很糟糕,因为它会减慢保存过程并且不会扩展。

    我建议通过队列使用异步任务,如django-rqcelery。而且您可以在 post_save 信号中将任务放入队列中。这种方法可以很好地扩展并且不会干扰正常的站点功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-09
      • 2016-02-20
      • 1970-01-01
      • 1970-01-01
      • 2021-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多