web-dev-qa-db-ja.com

Webアプリケーションでの遅い外部APIの処理

そのため、ユーザーのプロセスのさまざまなステップで、外部APIからデータを送受信するアプリケーションを取得しています。

現在、これを処理する方法はかなり初歩的です。アプリへのPOST、DELETE、またはPUTがあります。次に、アプリケーションはDBで必要な更新を行い、使用しているAPIに情報を送信します。 DBとAPIから応答を受け取ったら、ユーザーの要求に応答します。

私がアプリケーションを使い始めたとき、使用していた外部サービスは小規模でしたが、数年間このアプリケーションに取り組んだ後、その数は増え続けています。応答時間が遅い、特に痛みを伴うAPIを使用した後、ユーザーのリクエストに対するこの応答が遅く、痛みを感じ始めていることに気づきました。

遅い外部サービスとのやり取りをどのように処理しますか?

今、より高いレベルで、1つの解決策は、呼び出しがキューにプッシュされ、別のプロセス/サービスがそれらを処理するこれらのAPIのキューのようなシステムを実装することであることを知っています。 DBを更新し、マイクロサービスへのAPI更新を開始して、1日呼び出します。このような状況に対処するための他のアプローチはありますか?

4
AlbertEngelB

外部APIを非同期的に呼び出すのが最善の策です。

ユーザーのプロセスの一部である場合は、通話が進行中であることを示すフィードバックと、応答が得られたら通話が終了して成功したか失敗したかを示すのが最善です。可能であれば、外部APIに関するフィードバックを待つ間、ユーザーに他の入力を許可します。これにより、「遅くてつらい」感覚が打ち消されます。

3
Johannes