0

多くの監査関連データを生成するasp.net 3.5 Webアプリケーションがあります。そのデータはユーザーにすぐに関連するものではないため、非同期で MSSQL データベースに保存し、ユーザーが待たずに次のページに移動できるようにしたいと考えています。ORM として Nhibernate を使用しています。

私は PageAsyncTasks を調べましたが、ページ操作を並行して実行できるようにするだけですが、ページの読み込みが完了する前にすべての操作を完了する必要があります。ページの読み込みに影響を与えずに続行する非同期処理を行うための、かなり軽量な代替方法はありますか? 新しいスレッドを手動でスピンアップするだけでよいのでしょうか?

4

1 に答える 1

0

ソリューション内に Web サービスを作成できます。サーバー側のコードが完成し、ユーザーを次のページに移動する準備ができたら、Web サービスを呼び出して、ファイア アンド フォーゲット タイプのものとして監査を行うことができます。

NHibernate セッションがスレッドセーフかどうかわからないので、新しいスレッドを作成する場合はコンテキストに注意してください。

理想的には、キューとサービスバスを使用して、この種のものを安全かつ非同期に処理できますが、これにはアーキテクチャの変更が伴います。

これが可能かどうかはわかりませんが、監査によって実際にUIが著しく遅くなる場合は、そのプロセスを改善して同期を維持する方がよいでしょう. いずれにせよ、頑張ってください。

于 2013-02-01T14:36:04.467 に答える