id в данном случае это ключ? Скорее всего ничего не надо делать, потому что операция отправляется backend'у, и там выполняется слишком долго.
Вообще, по хорошему, надо посмотреть цену DELETE и UPDATE, возможно лучше обновлять запись и ставить флаг deleted, а потом отдельной задачей ходить и очищать такие записи.
2013/2/6 <
vsht...@gmail.com>:
> Здравствуйте. Проект на python 2.7 и SQL. При обработке запроса на удаление
> или обновление одной записи вылетает DatabaseError с превышением лимитов
> времени. Операцию записи выполняет. Подскажите, пожалуйста, как решить
> проблему?
> Код:
> class Test (webapp2.RequestHandler):
> def get(self):
> conn = rdbms.connect(instance=_INSTANCE_NAME, database='test0')
> cursor = conn.cursor()
> cursor.execute("DELETE FROM test1 WHERE id=2;")
>
> Отчет об ошибке:
>
> Traceback (most recent call last):
> File
> "/python27_runtime/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py",
> line 1535, in __call__
> rv = self.handle_exception(request, response, e)
> File
> "/python27_runtime/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py",
> line 1529, in __call__
> rv = self.router.dispatch(request, response)
> File
> "/python27_runtime/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py",
> line 1278, in default_dispatcher
> return route.handler_adapter(request, response)
> File
> "/python27_runtime/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py",
> line 1102, in __call__
> return handler.dispatch()
> File
> "/python27_runtime/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py",
> line 572, in dispatch
> return self.handle_exception(e, self.app.debug)
> File
> "/python27_runtime/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py",
> line 570, in dispatch
> return method(*args, **kwargs)
> File "/base/data/home/apps/s~vshttlttest/2.365089095351249780/main.py",
> line 25, in get
> cursor.execute("DELETE FROM nomen WHERE id=2;")
> File
> "/python27_runtime/python27_lib/versions/1/google/storage/speckle/python/api/rdbms.py",
> line 499, in execute
> self._DoExec(request)
> File
> "/python27_runtime/python27_lib/versions/1/google/storage/speckle/python/api/rdbms.py",
> line 375, in _DoExec
> response = self._conn.MakeRequest('Exec', request)
> File
> "/python27_runtime/python27_lib/versions/1/google/storage/speckle/python/api/rdbms.py",
> line 873, in MakeRequest
> response = self._MakeRetriableRequest(stub_method, request)
> File
> "/python27_runtime/python27_lib/versions/1/google/storage/speckle/python/api/rdbms.py",
> line 904, in _MakeRetriableRequest
> sql_exception.message))
> DatabaseError: 1205: Lock wait timeout exceeded; try restarting transaction
>
> --
> Вы получили это сообщение, поскольку подписаны на группу Google App Engine
> Russian.
>
> Чтобы отказаться от подписки на эту группу и перестать получать из нее
> сообщения, отправьте электронное письмо на адрес
>
google-appengin...@googlegroups.com.
> Чтобы добавлять сообщения в эту группу, отправьте письмо по адресу
>
google-ap...@googlegroups.com.
> Перейдите в группу по ссылке
>
http://groups.google.com/group/google-appengine-ru?hl=ru.
> Подробнее о функциях можно узнать на странице
>
https://groups.google.com/groups/opt_out.
>
>
--
Mikhail Kashkin
http://comfort.ly/
http://www.vurt.ru/