1

メソッドの引数に基づいて長時間実行されるプロセスを実行する、WCF WS Addressing 対応の Web サービスを実装する必要があります。

結果はデー​​タベース テーブルに直接配信されるため、クライアントは結果を待つ必要はありません。ただし、Web メソッドは「追跡 ID」番号 (実際には GUID) を返す必要があるため、クライアントはそれを使用してデータベースから結果を取得できます。

  1. Web メソッドは、受け取った引数を受け取り、新しい GUID を作成し、このすべての情報をデータベース テーブル (または MSMQ キュー) などに格納します。次に、追跡 GUID をクライアントに返します。外部サービス (おそらく Windows サービス) は常に「受信トレイ」をポーリングし、各要求に対して長時間実行されるプロセスを実行し、コールバック サービスへの結果と応答を生成します。

前もって感謝します

セカール

4

1 に答える 1

2

あなたの質問は何ですか?しかし、あなたの説明から、Web サービス自体は非同期ではありません。Java webapp では、次のような単純な webapp を実装します。

  • データを格納し、スレッドを開始し、GUID を返す Web サービス
  • スレッドは長期的なタスクを実行し、結果をその GUID に格納します
  • まだ終了していない場合は、guid または fould の結果を返す Web サービス。

ベスト プラクティスは、長期的なタスクに独自のデーモン スレッド グループを使用し、各スレッドに GUID を付けることです。グループの uncaughtException() メソッドをオーバーライドして、エラー発生時に GUID の結果として例外を保存します。

于 2008-11-12T08:58:38.463 に答える