Appengine Python DevServer Module Ошибка фонового потока 500
У меня версия 1.9.9 SDK, и у меня проблемы с devserver. У меня есть вручную масштабированный модуль с 1 экземпляром. Я создал webapp2.RequestHandler
за /_ah/start
, В этом обработчике я запускаю фоновый поток. Когда я запускаю свое приложение в devserver, _ah/start
обработчик возвращает 200, но /_ah/background
случайно вернет 500 ошибок на некоторое время. Через некоторое время (обычно минуту или две, но иногда и больше) 500 ошибок прекращаются, но случайным образом повторяются каждые несколько часов. Также кажется, что каждый раз, когда я открываю новую вкладку браузера (Chrome), я получаю ту же ошибку. Кто-нибудь знает, что может быть причиной этого?
Здесь RequestHandler
за /_ah/start
:
class StartupHandler(webapp2.RequestHandler):
def get(self):
runtime.set_shutdown_hook(shutdown_hook)
global foo
if foo is None:
foo = Foo()
background_thread.start_new_background_thread(do_foo, [])
self.response.http_status_message(200)
Вот ошибка 500:
ERROR 2014-08-18 07:39:36,256 module.py:717] Request to '/_ah/background' failed
Traceback (most recent call last):
File "\appengine\tools\devappserver2\module.py", line 694, in _handle_request
environ, wrapped_start_response)
File "\appengine\tools\devappserver2\request_rewriter.py", line 311, in _rewriter_middleware
response_body = iter(application(environ, wrapped_start_response))
File "\appengine\tools\devappserver2\module.py", line 1672, in _handle_script_request
request_type)
File "\appengine\tools\devappserver2\module.py", line 1624, in _handle_instance_request
request_id, request_type)
File "\appengine\tools\devappserver2\instance.py", line 382, in handle
request_type))
File "\appengine\tools\devappserver2\http_proxy.py", line 190, in handle
response = connection.getresponse()
File "E:\Programing\Python27\lib\httplib.py", line 1030, in getresponse
response.begin()
File "E:\Programing\Python27\lib\httplib.py", line 407, in begin
version, status, reason = self._read_status()
File "E:\Programing\Python27\lib\httplib.py", line 365, in _read_status
line = self.fp.readline()
File "E:\Programing\Python27\lib\socket.py", line 430, in readline
data = recv(1)
error: [Errno 10054] An existing connection was forcibly closed by the remote host
INFO 2014-08-18 07:39:36,257 module.py:1890] Waiting for instances to restart
INFO 2014-08-18 07:39:36,262 module.py:642] lease: "GET /_ah/background HTTP/1.1" 500 -
2 ответа
Похоже, проблема (насколько я могу судить в настоящее время) заключается в том, что я использую PyCharm, который синхронизирует файлы проекта при входе или выходе из его окна. Это перезаписывает файлы проекта, даже если нет никаких изменений, что приводит к тому, что devserver перезапускает все экземпляры, что приводит к 500 ошибкам.
Ну, это может быть не ответ, но сколько времени потребуется для выполнения конкретной задачи, назначенной бэкэнду? Похоже, проблема с параллелизмом