2012-03-13 13 views
2

2時間以内に2時間以内にデータ転送が可能です。この転送を行うためのコードはC#で書かれています。Webサービスコールで長時間実行ジョブを開始

WCF Webサービスコールを使用して転送を開始します。

理想的には、「OKジョブが開始されました」というメッセージが表示され、ジョブが完了するまでジョブをサーバー上で実行するように、Webサービスコールを一度に戻したいと考えています。

これを行うにはどのような方法が最適ですか?

私たちが見る可能性のある問題は、次のとおりです。

  • Webサービスのタイムアウトジョブが
  • 仕事はあなたの苦境に全く似ていないが、

答えて

2

結果を返した後停止して終了する前に、私は同様のを持っていました私のMVCアプリケーションでのシナリオ。データ、バッチ電子メール、財務プロセスなどをインポートすることを含む「ジョブ」がたくさんあります。

基本的に、私はジョブマネージャーを持っているWindowsサービスを作成しました。それはまた軽いHttpServerを走らせました。これにより、メインのMVCアプリケーションがサービスと対話することができました。ジョブを開始し、すべてのジョブまたは特定のジョブ(ジョブの開始時に一意のIDが与えられたとき)のステータスを取得する要求を送信します。

私はあなたのケースでそれを実装しようとしていたので、私は実際の仕事をしたダウンロードジョブを追加し、JSON呼び出しを介してMVCアプリケーションから起動します。 StartJob JSON呼び出しから返されたIDを使用して、いつでもダウンロードのステータスを照会できます。したがって、メインのWebリクエストは即座に処理されます。

1

私はこのジョブを実行するコンソールアプリケーションを作成し、そのアプリケーションをWebサービスに呼び出させます。
Webサーバー自体の中で重いプロセスを実行することは決して良い考えではありません。

0

WebServceコールでバックグラウンドスレッドを使用できます。

関連する問題