Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django object.filter未加载所有结果_Python_Mysql_Django - Fatal编程技术网

Python Django object.filter未加载所有结果

Python Django object.filter未加载所有结果,python,mysql,django,Python,Mysql,Django,我正在使用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 = mod

我正在使用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)
然后,我加载了一些请求的所有图像对象(这可以在几个线程中运行):


问题是,我不是总能得到正确的图像对象集。有时它装载他们所有,有时它有点停止在装载中。我的意思是,例如,我得到10个图像对象中的4个,或者12个图像对象中的11个。对于单个请求中的图像,行-列对始终是uniqe,但当出现此问题时,最后加载的图像对象的行和列=0(当正确的行和列保存在DB中时,例如1、8)。这怎么可能?为什么我没有得到任何异常或错误?

令人惊讶的是,问题没有直接连接到线程。过去几周,发送到系统的图像数量和大小都在增长(大小大约是10倍),我并没有考虑到这一点。在某些情况下,当所有图像还没有保存时,我尝试过快速加载请求图像。好吧,我不会再犯同样的错误了。

“这可以在几个线程中运行”对我来说可能是个问题。。。其他线程在做什么?为什么要使用线程?我已经尝试过使用threading.Lock,但几乎没有成功。在加载整个图像集之后,我开始在该模型中描述的实际PNG文件文件上使用C++应用程序。它需要大约10分钟才能完成,并且要处理所有传入的图像,我不能一次只启动一个。您是否在数据库中检查图像是否确实存在?您是否尝试在事务中运行视图?是的,都在数据库中。棘手的是,如果另一个线程在前一个线程失败后尝试访问同一个请求,它通常会工作(或者在加载与第一个线程不同数量的图像后很少失败)。我使用“Turn.Ac原子”运行所有与数据库相关的东西,甚至尝试使用MySQL锁,但仍然没有成功。听起来,你需要使用类似芹菜之类的东西来单独管理C++任务。
images = models.Image.objects.filter(request_id=req_id).order_by('column', 'row')