Как отладить время ожидания mod_wsgi / django / apache / wget - PullRequest
2 голосов
/ 01 мая 2011

У меня есть веб-сервис, запущенный через django / apache / mod_wsgi, который я пытаюсь отладить - для запуска на стороне сервера требуется много времени, но с некоторыми параметрами он просто отключаетсяЯ попытался сделать wget прямо на URI и использовать urllib2.Я получаю следующую ошибку от wget:

Read error (Connection timed out) in headers

Между тем, urllib2 вообще ничего не возвращает - кажется, что происходит молча.Я попытался увеличить директиву Timeout в моей конфигурации apache, но это, похоже, не помогает.Сервис работает нормально с разными параметрами.Как мне отладить это?Откуда исходит таймаут, если не apache?

1 Ответ

0 голосов
/ 01 мая 2011

Скорее всего, проблема в коде ваших услуг.Убедитесь, что ваш сервисный код завершает выполнение и возвращается к apache, прежде чем пытаться отлаживать apache.

Я бы посоветовал вам отследить код служб, добавив операторы вывода.Обязательно добавьте оператор ouput перед тем, как ваш код вернется к mod_wsgi (последняя строка функции, которую вызывает mod_wsgi.) Скорее всего, вы увидите, что код висит в определенном месте.То есть все операторы отладки до этого места в коде появятся, ни один из выходных операторов после этого места не появится.

Если вы не хотите добавлять оператор отладки, попробуйте использовать отладчик для пошагового выполнения кода.

Другой вариант - использовать сервер разработки django и посмотреть, происходит ли тайм-аут при работе без apache.Однако, поскольку сервер разработки является однопоточным, ваш код не будет зависать, если проблема, с которой вы сталкиваетесь, связана с ошибкой параллелизма.

...