Webアプリケーションのオートコンプリート検索にはSOLRを使用します。大量のデータをデータベースに追加する夜間のプロセスがあり、そのプロセスが終了したら、そのデータをデータベースからSOLRサーバーにインポートする必要があります。
現在、そのインポートプロセスは次の順序で手動で実行されます。
- ondeckSOLRサーバーがアイドル状態かどうかを確認します
- ondeckサーバーにデータの完全なインポートを行うように指示します。サーバーのステータスは「ビジー」です。
- ondeckサーバーを頻繁にポーリングし、終了すると、ステータスはアイドル状態に戻ります。
- オンデッキサーバー(新しい情報を含む)をライブSOLRサーバーと交換します。
- データベースでストアドプロシージャを実行します。
Webアプリに管理ツールページがあります。私がやりたいのは、そのプロセスを開始するボタンをそのページに配置し(WebアプリケーションへのAJAX呼び出しを介して)、プロセスが開始されたことをユーザーに通知することです。プロセス全体が完了するまでに約1時間かかるため、AJAX呼び出しを1時間実行してから、プロセスが終了したことをユーザーに通知するページに戻ることはできません。
非同期で行う必要があります。プロセスを開始する必要があります。開始されると、プロセスが開始されたことをユーザーに通知します。その後、アプリケーションはプロセスの各ステップを待機し続け、終了するまで次のステップを呼び出します。これを実現するためのMVC4のコードはどのように見えますか?私はMSDNのチュートリアルを見てきましたがasync
、await
少し混乱しています。