Я пытаюсь устранить производственную проблему, когда django останавливается при доступе к конкретному экземпляру модели, но не к другим экземплярам того же класса.
Моя производственная среда - Heroku, использующая gunicorn с postgres в качестве базы данных.Heroku показывает следующую ошибку в журналах (убрал чувствительные биты):
Feb 21 20:26:20 [heroku-app-name] heroku/router: at=error code=H12 desc="Request timeout" method=GET path="[url-path]" host=[my-host] request_id=[request-id] fwd="[fwd-stuff]" dyno=web.1 connect=0ms service=30000ms status=503 bytes=0 protocol=http
Feb 21 20:26:21 [heroku-app-name] app/web.1: [2019-02-22 04:26:21 +0000] [4] [CRITICAL] WORKER TIMEOUT (pid:14)
Feb 21 20:26:21 [heroku-app-name] app/web.1: [2019-02-22 04:26:21 +0000] [14] [INFO] Worker exiting (pid: 14)
Feb 21 20:26:21 [heroku-app-name] app/web.1: [2019-02-22 04:26:21 +0000] [20] [INFO] Booting worker with pid: 20
Конкретный URL, к которому я обращаюсь, просто отображает экземпляр модели через класс generic.DetailView (упрощенный для краткости):
class DetailView(generic.DetailView):
model = MyModel
template_name = 'detail_view.html'
В моей производственной базе данных всего несколько десятков записей (все еще новый сайт), поэтому, насколько я могу судить, я не перегружаю сервер.
На этомТочка, я даже не уверен, куда идти, чтобы выяснить, что на самом деле идет не так.Время ожидания сервера истекает КАЖДЫЙ раз, когда я обращаюсь к одному конкретному экземпляру MyModel , но отлично работает для любого другого экземпляра.