问题描述
我正在使用Django 3.1
创建一个Web应用程序,并且很多DB interaction
大多位于三个表之间。查询主要使用最近输入的结果。因此query1
将运行并更新table1
,query2
将使用table1
来更新2 table2
,而query3
将使用已更新的column
query2
来更新columns
中的其他table2
。所有这些都在用户每次输入或更新信息时运行。
也许视觉效果会更清晰。
query1 = Model1.objects.filter(...).annotate(...)
query2 = Model2.objects.filter(...).update(A=query1)
query3 = Model2.objects.filter(...).update(B=A*C)
我开始担心python
和Postgresql
之间的速度,当多个用户同时开始使用它时,可能会丢失数据。我读到有关celery
和Django Asynchronous support
的信息,但尚不清楚我是否需要芹菜。
这是一个非常简化的版本,但您可以理解要点。有人可以帮我吗?
解决方法
如果您的Django视图具有长期运行的任务,并且您不希望用户等待完成或应用程序服务器超时,则可以考虑使用Celery。如果数据库更新很快,那么您可能不需要它。 PostgreSQL是一个多用户数据库,因此您不必担心用户掩盖其他用户的更改。