Вот объект, который я хотел бы передать задаче:
class MyData(ndb.Model):
...
text = ndb.StringProperty(indexed=False)
data = ndb.BlobKeyProperty(repeated=True)
details = ndb.KeyProperty(kind=Details)
Могу ли я сделать что-то вроде ниже?
mydata = MyData.query()
mydata = mydata.filter(...)
mydata = mydata.order(MyData.added)
mydata = mydata.fetch(100)
for d in mydata:
taskqueue.add(url='/worker', payload=d)
Как я могу извлечь данные из полезной нагрузки тогда? Не думайте, что self.request.get('payload')
сработает. Поймите, что я могу передать только ключ ndb и прочитать сущность внутри задачи. Но это потребует дополнительных операций чтения. Или я могу как-то использовать keys_only
, когда fetch(100)
? keys_only
операции бесплатны в соответствии с документом:
Операции с небольшими хранилищами данных включают вызовы для выделения идентификаторов хранилищ данных или запросы только на ключи, и эти операции бесплатны.
Но считаются ли они операциями чтения хранилища данных?