很难解释我想要达到的目标。请耐心等待。如果您有任何问题,请告诉我。
假设我有一个 Django 项目,其中包含两个应用程序,我想让它们松散耦合。其中一个应用程序是“工作”,另一个是“通知”。
现在我想在 Job 实例更新时创建通知。所以,我正在考虑使用 Django Signals。但我的一些保留意见是:
- 如果我使用 post_save 之类的内置信号。我可以验证作业实例的条件并生成通知(这很好)。但是当我在同一个视图逻辑中多次调用作业实例的保存方法时,问题就来了。这将多次生成通知。否则,我使用自制的信号,我需要手动调用它,这不利于松散耦合。
- 此外,信号不是异步的,所以我必须等待通知生成完成才能继续。
任何人都可以建议使用信号的良好实施策略。我正在研究的一种解决方案是 Python Threading,它似乎可以解决异步问题。但是使用线程是否有任何其他后果。