数据存储异步写操作,不保存

时间:2015-09-08 12:25:35

标签: python google-app-engine google-cloud-datastore

尝试将数据写入我的本地数据存储区,如:

drivingJson = json.loads(drivingdata)
    for data in drivingJson:
        keys = getKey()
        index = 1
        dataList = list()
        for nodeData in data:
            self.response.write(keys)
            self.response.write("<br>")
            lat = nodeData['lat']
            lng = nodeData['long']
            color = nodeData['color']
            timestamp = datetime.datetime.strptime(nodeData['timestamp'], "%Y-%m-%d %H:%M:%S") 
            saveDrivingData = DrivingObject(
                                            index = index,
                                            lat = float(lat),
                                            lng = float(lng),
                                            timestamp = timestamp,
                                            sessionKey = str(keys),
                                            color = int(color)
                                            )
            dataList.append(saveDrivingData)            
            index +=1

        ndb.put_multi_async(dataList)

这并没有详细填充数据存储区。但是当我使用

ndb.put_multi(dataList)

datatstore填充得很好。我该如何处理异步调用。感谢

1 个答案:

答案 0 :(得分:2)

put_multi_async返回Future对象列表。 在返回请求之前,您需要调用wait_any以确保put完成。

在您返回之前,请阅读有关异步的所有工作。

https://cloud.google.com/appengine/docs/python/ndb/async#using

所有文件都涉及到等待。