this siteのdjango-on-twistedスクリプトを使用してツイストでdjangoアプリケーションを実行しています。djangoの実行中にツイスター・サーバーが予期せずクラッシュする
すべてのリクエストは、関連するリクエストをひっくり返してプロキシするnginxサーバーによって処理されます。私は基本的にちょうどget要求を受け取り、応答を送る前にgetパラメータで何らかの処理を行うAPI用のURL設定をしています。しかし、特定のクライアントが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
クライアントからのリクエストは有効なリクエストであり、逆の処理には影響しません。私はシェルからテストしました。私がdjango開発サーバーで試してみたところ、リクエストを受け取る痕跡を残さずに同じ方法でクラッシュしました。ブラウザからテストするときは、すべてが完璧に機能します。また、ねじれたサーバーは、すべての通常の使用例でうまく機能します。私が問題に直面しているのは初めてです。どんな助けや指針も感謝します。
「シャットダウンします」意味ですか?それはきれいに終了しますか?シグナルがそれを終了させますか? –
ねじれたサーバーはログに何も書き込まれません。私はそれがきれいな出口ではないと確信しています。それは単に動作を停止します。どのように私は出口信号をキャッチすることができるかもしれないの任意のアイデア? – tapan
bashを使用している場合は、 '$?'が役に立ちます。 bashのmanページから:**?最後に実行されたフォアグラウンドパイプラインの終了ステータスに展開されます。**したがって、例えば、 'twistd ...; echo $? ' –