Google应用引擎:Golang datastore.GetAll()无效

时间:2016-01-11 17:56:44

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

每周一次cron作业在我的一个app引擎项目中调用以下函数:

func cleanMealsFromDatabase(context appengine.Context) error {
    query := datastore.NewQuery("Essen").Limit(1000).KeysOnly()
    keys, err := query.GetAll(context, nil)
    if err != nil {
        return err
    }
    return datastore.DeleteMulti(context, keys)
}

我正在尝试批量删除一堆数据存储区实体。该函数被正确调用,但

query.GetAll(context, nil)

似乎总是返回错误。我做错了吗?

1 个答案:

答案 0 :(得分:0)

好的,我现在知道出了什么问题。当我最终弄清楚如何在应用引擎中记录错误时,它说:

API error 1 (datastore_v3: BAD_REQUEST): cannot write more than 500 entities in a single call

所以我必须做的就是将 Limit 参数从 1000 更改为 500 ,如下所示:

query := datastore.NewQuery("Essen").Limit(500).KeysOnly()

现在它的工作方式与预期一致。