2016-03-23 19 views
0

私の大学のいくつかは、私たちのためのいくつかの簡単なWebサービスインターフェイスを作った。ループ内のWebサービス呼び出し

しかし、プロセスは少し長く実行されていますが、これは正常であり、期待されています。しかし、問題は、これは彼らが考えるものですされています

  • 最初の要求を作成し、そのIDを使用して応答して

  • をIDを取得し、プロセスが

    終了するまで、ループ内でリクエストを作成します
  • 1つの最終リクエストを行います。基本的にはクリーンアップだけです。

1つのWebメソッドを作成して1つのリクエストを作成するのはどうですか?それより長い場合は、タイムアウトを増やしてください。それは大丈夫、私は待つことができます...

地獄のない!

何が問題になる可能性がありますか?

答えて

1

HTTP経由で長時間実行されているプロセスでは、常に問題が発生しています。 HTTPは長時間実行される要求を好まず、多くのネットワークアプライアンスでは要求の長さに厳しい制限があり、他のものはデフォルトのタイムアウトが調整される必要があります。

私は、長時間実行されているプロセスの状態をチェックするために、一連の小さな要求を好んでいます。それはより多くのコードですが、ダウンストリームの問題ははるかに少なくなります。私は、このパターンが、プロセスが完了したかどうかを示すためにHTTP 202応答コードを使って実装するのが一般的です。

+0

ありがとうございました。私は長年走っているウェブメソッドで何らかの問題を覚えたことはありません。まあ、私はもちろんタイムアウトを調整する必要があることを除いて。これはこのパターンの私の最初の実装であり、私にとって非常に奇妙に見えます。実際、それはDoS攻撃や単純な酷使のようなものに似ています。私はちょうど誰かがこの種の実装をしていて、何が間違っているのだろうと思っています.... – vbilopav

+0

はい、かなり一般的です。接続が低レイテンシの場合は、トラフィック量を避けるために、呼び出し間にわずかな遅延を置くだけの価値があります。 –

+0

まあ、それはかなり一般的な場合、どのように今まで実行されませんでした。そして、私はまだ、複数の、何百、あるいは何千もの新しいリクエスト(および新しいスレッド、新しい認証など)を生成すると、1つのリクエストで問題が発生する可能性があることを理解できませんか? – vbilopav

関連する問題