我正在使用來自this site的django-on-twisted腳本以扭曲方式運行django應用程序。扭曲的服務器在運行時意外崩潰django
所有請求都由一個nginx服務器提供服務,該服務器將相關請求反向代理爲twisted。我有一個API的API設置,它基本上只接收get請求,並在發送響應之前對get參數進行一些處理。但是,當一個特定的客戶端正在訪問api時,扭曲的服務器就會關閉。下面粘貼的是Nginx日誌:
the.ip.of.client - - [21/Apr/2012:11:30:36 -0400] "GET /api/url/?get=params&more=params HTTP/1.1" 499 0 "-" "Java/1.6.0_24"
扭曲的日誌顯示什麼,但在這一點上扭曲停止工作。通過錯誤代碼499,我假設客戶端意外關閉了連接,這與我沒有任何問題。客戶是否收到回覆對我來說並不重要。以下是相關的django視圖:
def api_url(request):
if request.GET:
get_param = request.GET.get('get', [''])[0]
more_param = request.GET.get('more', [''])[0]
#some processing here based on the get params
return HttpResponse('OK')
else:
raise Http404
來自客戶端的請求是有效請求,不會以不利方式影響處理。我從shell中測試過它。當我在django開發服務器上嘗試它時,它也以同樣的方式崩潰,沒有留下任何接收請求的痕跡。從瀏覽器進行測試時,一切正常。此外,扭曲的服務器適用於所有常規用例。這是我第一次面臨一個問題。任何幫助或指針將不勝感激。
什麼是 「關閉」 是什麼意思?它乾淨地退出嗎?信號是否會導致它退出? – 2012-04-21 19:32:06
扭曲的服務器不會向日志寫入任何內容。我很確定這不是一個乾淨的退出。它只是停止工作。任何想法我怎麼能夠趕上退出信號? – tapan 2012-04-21 20:12:59
如果你使用bash,那麼'$?'會有幫助。從bash手冊頁:**?擴展到最近執行的前臺管道的退出狀態。**因此,例如,'扭轉...; echo $?' – 2012-04-22 00:27:57