Django Signal与Python线程

时间:2012-12-14 00:25:18

标签: python django django-signals

很难解释我想要实现的目标。请耐心等待。如果您有任何疑问,请告诉我。

假设我有一个包含两个应用程序的Django项目,我希望它们松散耦合。其中一个应用是“工作”,另一个是“通知”。

现在我想在更新Job实例时创建通知。所以,我正在考虑使用Django Signals。但我的一些保留意见是:

  1. 如果我使用像post_save这样的内置信号。我可以验证作业实例上的条件并生成通知(这很好)。但问题出现的时候,在同一视图逻辑中,我多次调用作业实例上的save方法。这会多次生成通知。另外,我使用自制信号,我需要手动调用它,这对松耦合不利。
  2. 此外,信号不是异步的,所以我必须等待通知生成完成才能继续。
  3. 任何人都可以使用信号建议一个好的实施策略。我正在研究的一个解决方案是Python线程,它似乎处理异步问题。但使用线程是否会产生任何其他后果。

1 个答案:

答案 0 :(得分:1)

我建议你在RabbitMQ上使用django-celery。您可以在celery的任务中添加通知内容,让您的视图启动任务队列。看看......我希望它会对你有所帮助。