0

Web サーバー (nginx、Cherokee、Oracle iPlanet など) と Java コンテナー (GlassFish など) に関して次の質問を受けました。

ブラウザーがサーバーへの HTTP/HTTPS 接続を開くと、Web サーバー (nginx、Cherokee、または Oracle iPlanet) にヒットし、Java コンテナー (GlassFish) へのリバース プロキシにアクセスします。次に、Java アプリケーションが実行され、計算などの非常に多くの処理が行われ、最終的に、たとえば 3 つの異なるデータベースに書き込む必要があります。1 番目のデータベースへの書き込みが完了したが、2 番目と 3 番目のデータベースへの書き込みはまだ完了していない場合、ユーザーが (ブラウザ ウィンドウを閉じるか、ネットワーク接続を切断するなどして) 接続を閉じた場合、プロセスはどうなりますか?

具体的には、すべてのコードの実行が完了するまでプロセスを続行したいと考えています。新しいスレッドでプロセスをスピンオフする方法があることは知っていますが、これには計算コストがかかります。では、ユーザーが接続を切断した場合でも実行を継続できるようにするためにできる設定/構成はありますか?

4

1 に答える 1

1

nginx では、proxy_ignore_client_abortをオンに設定できます。クライアントが接続を閉じても、バックエンドへの接続は閉じられません。

于 2011-12-31T03:49:39.830 に答える