我正在开发一个Django应用程序。其中有一项功能,我想通过读取、计算和插入多个表来改变数据库状态。这是一个原子过程,不能只是“单线程”,因为所得到的状态取决于执行此类过程的顺序。
为此,我使用了带有单个worker的Celery。我考虑使用Postgres中的SERIALIZED隔离级别,直到我读到:
可串行化事务保证产生与按某种顺序逐个运行它们相同的效果
但我不需要“某些”,我需要“确切”的顺序,这就是为什么我选择了消息队列。
在过程期间,我希望完全禁止对我操作的表进行写入,但仍允许读取。哪种最不严格的LOCK模式适合我的情况?
为此,我使用了带有单个worker的Celery。我考虑使用Postgres中的SERIALIZED隔离级别,直到我读到:
可串行化事务保证产生与按某种顺序逐个运行它们相同的效果
但我不需要“某些”,我需要“确切”的顺序,这就是为什么我选择了消息队列。
在过程期间,我希望完全禁止对我操作的表进行写入,但仍允许读取。哪种最不严格的LOCK模式适合我的情况?
ACCESS EXCLUSIVE
。 - Pirulax