【发布时间】:2016-04-06 20:47:43
【问题描述】:
我用 django 运行 celery。我使用任务将对象流导入我的数据库。每个任务导入一个对象。并发性为 2。流对象内可以复制,但不应该在我的数据库中。
我正在运行的代码:
if qs.exists() and qs.count() == 1:
return qs.get()
elif qs.exists():
logger.exception('Multiple venues for same place')
raise ValueError('Multiple venues for same place')
else:
obj = self.create(**defaults)
问题是如果流中的对象是重复的并且彼此非常接近,应用程序仍然会导入相同的对象两次。
我假设数据库检查在此并发设置下无法正常工作。你推荐什么架构来解决这个问题?
【问题讨论】:
标签: django database concurrency celery