python - Django 信号与 Python 线程

标签 python django django-signals

很难解释我想要实现的目标。请耐心看完这个。如果您有任何问题,请告诉我。

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

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

  1. 如果我使用像 post_save 这样的内置信号。我可以验证作业实例的条件并生成通知(这很好)。但是问题来了,在同一个 View 逻辑中,我多次调用作业实例上的保存方法。这会多次生成通知。否则,我会使用自制信号,我需要手动调用它,这不利于松散耦合。
  2. 此外,信号不是异步的,因此我必须等待通知生成完成才能继续。

任何人都可以建议使用信号的良好实现策略。我正在研究的一种解决方案是 Python 线程,它似乎可以解决异步问题。但是使用线程还有其他后果吗?

最佳答案

我建议您将 django-celery 与 RabbitMQ 一起使用。您可以在 celery 的任务中添加通知,并让您的 View 启动任务队列。看一看....希望对您有所帮助。

关于python - Django 信号与 Python 线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13870894/

相关文章:

Python UDP套接字丢失数据包

python - 用户注册错误 : no such table: auth_user

django - 将 PostgreSQL 重写为 Django ORM

python - 识别 django post_save 信号中更改的字段

python - 将未定义的方法调用传递给包含不同对象的属性

python - 使用自定义对象查询 Python 字典键

Python Pandas - 为什么 `in` 运算符适用于索引而不适用于数据?

python - Django Views : When is request. data a dict vs a QueryDict?

python - Django REST 框架 : return 404 (not 400) on POST if related field does not exist?

Django 发出评论通知信号