Я использую Google AppEngine и отложенную библиотеку с классом Mapper
, как описано здесь (с некоторыми улучшениями, как в здесь ). В некоторых итерациях маппера я получаю следующую ошибку:
CancelledError: The API call datastore_v3.Put() was explicitly cancelled.
Mapper обычно работает нормально, раньше у меня был больший размер пакета, так что он действительно достигал DeadlineExceededError
, и это было обработано правильно.
Просто чтобы быть уверенным, я уменьшил размер batch_size до очень низкого числа, чтобы он никогда не достигал DeadlineExceededError
, но я все равно получаю CancelledError
.
Трассировка стека выглядит следующим образом:
File "utils.py", line 114, in _continue
self._batch_write()
File "utils.py", line 76, in _batch_write
db.put(self.to_put)
File "/google/appengine/ext/db/__init__.py", line 1238, in put
keys = datastore.Put(entities, rpc=rpc)
File "/google/appengine/api/datastore.py", line 255, in Put
'datastore_v3', 'Put', req, datastore_pb.PutResponse(), rpc)
File "/google/appengine/api/datastore.py", line 177, in _MakeSyncCall
rpc.check_success()
File "/google/appengine/api/apiproxy_stub_map.py", line 474, in check_success
self.__rpc.CheckSuccess()
File "/google/appengine/api/apiproxy_rpc.py", line 126, in CheckSuccess
raise self.exception
CancelledError: The API call datastore_v3.Put() was explicitly cancelled.
Я не могу найти много информации об этой ошибке "explicity отменен", поэтому мне было интересно, что ее вызвало и как ее расследовать.