Django - PostgreSql和序列

时间:2018-01-01 11:48:46

标签: python django postgresql

我们使用的是Python 3.5,Django 1.10和PostgreSql 9.6 DB

我们需要一个对象(项目)之一的自动增量字段,并且无法使用数据库自​​动增量来实现,因为增量有另一个依赖性。
对于每个项目的项目,该字段应递增(每个项目可以包含多个项目)。 我们决定使用基本上创建另一个表的django-sequences包(我们使用与我们的模型相同的数据库),并在需要时通过锁定数据库并根据相关参数递增最高值来递增字段(在我们的例子中是项目ID)。好像很有用。
并行存在多个请求时会出现此问题。似乎数据库被锁定,我们在几次请求后开始获得504 为什么会发生这种情况?

这是django-sequences使用:

        if instance.identifier < 0:
        with transaction.atomic():
            instance.identifier = get_next_value(
                'project__' + str(instance.project.id) + '__item__identifier',
                initial_value=1,
                nowait=False
            )

更新:似乎504来自Apigee,设置为10秒超时。

0 个答案:

没有答案