Once a week a cron job calls the following function in one of my app engine projects:
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)
}
I'm trying to batch delete a bunch of datastore entities. The function gets called correctly, but
query.GetAll(context, nil)
seems to always return an error. Am I doing something wrong?
Okay, I now know what went wrong. When I finally figured out how to log an error in app engine, it said:
API error 1 (datastore_v3: BAD_REQUEST): cannot write more than 500 entities in a single call
So all I had to do, was to change the Limit parameter from 1000 to 500 like this:
query := datastore.NewQuery("Essen").Limit(500).KeysOnly()
Now it works like intended.