2017-08-28 3 views
0

私はASP.NET Core Webアプリケーションを構築しています。複雑なタスクを実行する必要があります。ユーザーは、完全なタスクが実行されるまで待つ必要はありませんが、多分、タスクの進行状況をUIで更新する必要があります。私はASP.NETサーバーでこれを処理する2つの方法を考えています:1つはバックグラウンドスレッドを使用し、もう1つは別のプロセスを使用しています。私は長時間実行されているタスクがWebアプリケーションを妨げないようにしています。スレッドを使用するのは、プロセスに比べて安全なオプションですか?別のプロセスでこれらのタスクを実行する方が効率的です。別のバックグラウンドスレッドとプロセスで長時間のバックグラウンドタスクを実行する

答えて

4

私は別のプロセスでそれを言うと思います。それを待ち行列に入れ、その待ち行列を別のプロセスで処理し、完了したらジョブ完了メッセージなどを送信してWebアプリケーションに通知します。

ウェブアプリケーション内で通常のスレッドを使用していて、プロセスの途中でサーバがシャットダウンした場合、またはWebアプリケーションがリサイクルされた場合、望ましくない効果が生じる可能性があります。

いくつかの他のオプションは、あなたがあなたの要求を発射することができたことでsignalRのように近づき、常にリアルタイムの通知を考えるような状況では、here

0

あなたは違った考えなければならないが概説されている、あなたはもうそれを心配する必要はいけない、と一度それはあなたのアプリに信号を送るつもりだ、あなたはあなたのビジネスに基づいて操作することができますすべてのデータにアクセスできるようになります。詳細については、このリンクをご覧ください。An Introduction to SignalR

関連する問題