0

xbuf_frurl後処理を行うためにワーカーを起動するために使用しようとしています。
労働者は何も返さずに仕事を終えます。
したがって、元のスクリプトはクライアントにすばやく応答できます。

そこで、xbuf_frurlでtimeout = 0msを設定して、すぐに戻り、残りのコードを実行して200を返すことができることを期待しています。

xbuf_frurl(&buf, "localhost", 80, HTTP_GET, "/postprocessing", 0, 0);
xbuf_ncat (reply, buf.ptr, buf.len);

ただし、バッファがnullではないため、すぐにはタイムアウトしないようです。

そうするためのより良い方法はありますか?

4

1 に答える 1

0

タイムアウトは、xbuf_frurl()ターゲットホストがTCP接続を受け入れていない場合に、より速く失敗することを目的としています。

したがって、質問に答えるために、サーバーは常にオンラインであるため、タイムアウトは応答時間に影響を与えません。

別のサーブレット(または自己)からサーブレットを照会することが、あなたがやりたいことを行うための最良の方法であるかどうかはわかりませんが、あなたの目標が何であるかがわからない場合、より良い戦略を与えることはできません(神秘的「posprocessing」は、HTTP接続を使用するよりも確実に効率的にトリガーできます)。

HTTP接続を使用する場合は、誤ったHTTPステータスコード(1〜99の範囲)を使用して最小限の応答を送信するサーブレットを使用できます。これは、G-WANが欠落しているHTTPヘッダーを追加するのを防ぐために使用されます。裸のJSONペイロードを送信します。

于 2012-12-16T15:38:21.790 に答える