[英]Twisted server crashes unexpectedly while running django
我正在使用來自此站點的django-on-twisted腳本運行django應用程序。
所有請求都由nginx服務器提供服務,該服務器反向代理相關的扭曲請求。 我有一個API的URL設置,它基本上只接收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開發服務器上嘗試它時,它也以相同的方式崩潰,而沒有留下任何接收請求的痕跡。 從瀏覽器進行測試時,一切都運行良好。 此外,扭曲的服務器適用於所有常規用例。 這是我第一次遇到問題。 任何幫助或指示將不勝感激。
rfc中沒有499 http代碼。 Nginx定義了499個代碼本身。
當客戶端發送請求並關閉連接而不等待響應時,會發生499代碼。 如果你的access_log中有很多499,那主要是由於后端速度慢(用戶等待太慢)。 您可能需要優化您的網站性能。
twisted.web2
就是問題。 請嘗試$ sh init.sh yourdjangoproject stand
。
您也可以嘗試修改run.py
來捕獲SystemExit
:
import pdb
try:
# __main__ stuff here.
except (KeyboardInterrupt, SystemExit):
pdb.set_trace()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.