4

これをどのように表現するかはわかりませんが、以下の動作を実現する方法についてのアイデアは素晴らしいでしょう.

コマンドラインプログラムへの長時間の呼び出しを行うWebサーバーがあります。サーバーに複数の長時間実行される呼び出しを処理させたいが、呼び出しが完了するまで特定の要求を返さないようにしたい。これは Web サイトではないため、呼び出しが長時間実行されても問題はなく、クライアントもタイムアウトしません。これを達成する方法についてのアイデアはありますか?

このリンクは関連していますか? clojure で多重化サーバーを作成しますか?

4

2 に答える 2

7

Luminusがwarファイルを生成することを考えると(リングとcompojureの上で実行されるため、そうすると思います)、Tomcatまたはjettyでそのwarファイルを実行すると、各リクエストが取得されるという点ですでに「マルチスレッド」です独自のスレッド。

クライアントはソケット読み取りタイムアウトを無限に設定でき、永遠に待機します。

于 2014-07-01T22:03:14.667 に答える
3

CPU 使用率以外の理由で通話が長い場合、最適なオプションは、http-kitまたはalephuberjar を使用することです。他のサーバーとは異なり、リクエストごとのスレッドではなくスレッド プールhttp-kitaleph使用し、CPU 使用率以外のボトルネックがある場合 (たとえば、任意のスリープ時間、ネットワークまたはディスク io など)、スレッド プールよりも実行されます。リクエストごとのスレッドよりもはるかに優れています。

http-kit クライアント / リング サーバー
aleph クライアント / リング サーバー

于 2014-07-02T12:44:51.037 に答える