フロントエンド部分とバックエンド部分の両方を持つ非常に複雑な Django アプリケーションを想像してみてください。一部のユーザーは、フロントエンド部分の一部のデータを変更します。一部のスクリプトは、バックエンド部分で同じデータを定期的に変更します。
例:
instance = SomeModel.objects.get(...)
# (long-running part where various fields are changed, takes from 3 to 20 seconds)
instance.field = 123
instance.another_field = 'abc'
instance.save()
その部分がいくつかのフィールドを変更している間に誰か (または何か) がインスタンスを変更すると、インスタンスが最近保存され、Python (Django) クラスからデータがダンプされるため、変更は失われます。言い換えれば、コード内の何かがデータを取得し、しばらく待ってからデータを保存する場合、最新の「セーバー」のみがそのデータを保存し、他のすべての (以前の) ものは変更を失います。
これは「負荷の高い」アプリであり、データベースの負荷 (Postgres を使用) は非常に高く、DB アクティビティや使用メモリの大幅な増加を引き起こすようなことは避けたいと考えています。
別の問題 - 多くのシグナルが添付されており、さらには save() メソッドがオーバーライドされているため、シグナルを壊したり、カスタムの save() または update() メソッドと互換性がない可能性があるものは避けたいと思います。
この状況であなたは何をお勧めしますか?そのための特別なアプリはありますか?取引?他に何か?
ありがとうございました!