如何减少任务队列中的数据拆分,Google应用程序引擎与Python
遇到错误“RequestTooLargeError:对API调用数据存储的请求_v3.Put()太大。” 在查看代码之后,它发生在它使用任务队列的地方如何减少任务队列中的数据拆分,Google应用程序引擎与Python,python,google-app-engine,task-queue,Python,Google App Engine,Task Queue,遇到错误“RequestTooLargeError:对API调用数据存储的请求_v3.Put()太大。” 在查看代码之后,它发生在它使用任务队列的地方 那么,如何将一个大型队列任务拆分为几个较小的任务呢?检查发送到任务队列的有效负载(参数)的大小 如果大小超过几KB,则需要将其存储在数据存储中,并将保存数据的对象的密钥发送到任务队列任务的最大大小为100KB。这是大量的数据。在不查看代码的情况下很难给出具体的建议,但我要提到: 如果在循环中传递要在任务中处理的集合,那么显而易见的解决方案是将整个
那么,如何将一个大型队列任务拆分为几个较小的任务呢?检查发送到任务队列的有效负载(参数)的大小
如果大小超过几KB,则需要将其存储在数据存储中,并将保存数据的对象的密钥发送到任务队列任务的最大大小为100KB。这是大量的数据。在不查看代码的情况下很难给出具体的建议,但我要提到:
同样,100KB是大量的数据。如果您没有使用循环来处理任务中的许多实体,那么任务队列的问题可能表明,如果您每次都要推送这么多数据,那么您的数据模型通常存在更大的问题。您可能想考虑将大型实体分割成几个较小的实体。< / P>我如何检查它的大小?我不想为此创建数据存储。我是否可以将数据拆分为较小的数据,然后发送到队列进行处理?您可以检查数据的大小,因为是您创建了数据并将其传递给了任务!如果您想在任务之间分割数据,那么您也可以这样做,前提是处理任务的东西可以处理这个问题@正如您从错误消息中看到的,您正在以任何方式使用数据存储。避免它没有多大意义。当然,你可以将你的工作分成两个较小的工作,但是你不能将一个工作的有效负载分开。这类似于将HTTP POST请求拆分为多个请求。