私が達成しようとしていることを説明するのは難しいです。辛抱強くお待ちください。ご不明な点がございましたら、お気軽にお問い合わせください。
疎結合にしたい 2 つのアプリケーションを含む Django プロジェクトがあるとします。アプリケーションの 1 つは「ジョブ」で、もう 1 つは「通知」です。
ここで、Job インスタンスが更新されたときに通知を作成したいと考えています。そこで、Django Signals を使用することを考えていました。しかし、私が持っている留保のいくつかは次のとおりです。
- post_save などの組み込みシグナルを使用する場合。ジョブ インスタンスの条件を検証し、通知を生成することができました (これは良いことです)。しかし、問題は、同じビュー ロジックでジョブ インスタンスの save メソッドを複数回呼び出すときに発生します。これにより、通知が複数回生成されます。それ以外の場合は、手動で呼び出す必要がある自家製の信号を使用しますが、これは疎結合には適していません。
- さらに、シグナルは非同期ではないため、先に進む前に通知の生成が完了するまで待つ必要があります。
Signals を使用して適切な実装戦略を提案してください。私が調べていた解決策の 1 つは、非同期の問題を処理しているように見える Python Threading でした。しかし、スレッドを使用することの他の結果はありますか?