サードパーティのexeを使用してリクエストを処理するasp.net Webサイトがあります。現在、私のワークフローは
ユーザーは任意のブラウザーを使用して Web サイトにアクセスし、ジョブの詳細をフォームに入力します。
Web サイトは、ポートでリッスンしている WCF 自己ホスト型 Windows サービスを呼び出します
Windows サービスはサードパーティの exe を起動してジョブを処理し、結果を Web サイトに返します
ウェブサイトは返された結果をユーザーに表示します
上記の Web サイトはプロトタイプであり、本番環境での展開に変更する必要があります。上記のアーキテクチャには、壊れる可能性のある多くのポイントがあることに気付きました。たとえば、マシンの電源がオフになっている場合、または Windows サービスがクラッシュしてポートをリッスンしていない場合、現在のすべての要求は処理を停止します。アーキテクチャをより堅牢にするために、次のことを検討しています
ユーザーは任意のブラウザーを使用して Web サイトにアクセスし、ジョブの詳細をフォームに入力します。
ウェブサイトがジョブの詳細をデータベースに書き出す
新しいジョブを求めて 10 秒ごとにデータベースをポーリングしている Windows サービスは、ジョブを取得し、サード パーティのアプリケーションを使用して実行します。結果はデータベースに書き戻されます。
データベースのポーリングを開始した Web サイトは、結果を取得してユーザーに表示します。
2 番目のアーキテクチャでは、より多くのログ機能が提供され、ジョブがキューにある場合はジョブを再開できます。ただし、スケーラブルでない可能性がある大量のポーリングが含まれます。より良いアーキテクチャを推奨できる人はいますか?