我正在使用Django 1.10.4和MySQL 5.7。
所以,我有以下模型:
class Image(models.Model):
request = models.ForeignKey(Request, on_delete=models.CASCADE)
customID = models.CharField(max_length=128, null=True)
status = models.IntegerField(default=0)
row = models.IntegerField(default=0)
column = models.IntegerField(default=0)
class Request(models.Model):
name = models.CharField(max_length=128, null=True)
然后我为一些Request加载所有Image对象(这可以在几个线程中运行):
images = models.Image.objects.filter(request_id=req_id).order_by('column', 'row')
问题是,我并不总是得到正确的Image对象集。有时它会加载它们,有时它会在装载过程中停止。我的意思是我得到例如10个中的4个,或12个Image对象中的11个。对于单个请求中的Image,行 - 列对始终是唯一的,但是当出现此问题时,最后加载的Image对象具有行和列= 0(当正确的那些,保存在DB中时为例如1,8)。这怎么可能?为什么我没有得到任何例外或错误?
答案 0 :(得分:0)
令人惊讶的是,该问题并未与线程直接相关。最近几周发送到系统的图像数量和大小都增加了(大小的情况下大约是10倍),我没有考虑到这一点。在某些情况下,当所有图像都没有保存时,我试图加载请求图像的速度太快。好吧,我不会两次犯同样的错误。