私は報告書を受け取るサービスを持っています:
ReportsResource.getActiveUsers()
これは$http
を使用して約束を返します。
私は、このようにそれを使用します。
var request = ReportsResource.getActiveUsers();
request.then(populateActiveUsersTable, handleError);
しかし、漁獲量は、アクティブなユーザーがバックエンドでレポートを取得するための要求は、数秒から、30 +分にどこでも取ることができることです。
あなたが要求していないキャッシュされたレポートが利用可能であることを確認した場合には、それはレポートを生成し、その要求は、その要求のために(再び、2秒または30分かもしれない)データを待ちます。
レポートを作成していて、現在レポートが生成されている場合は、すぐにレポートが準備完了ではない旨の応答が返されます。どの時点でポーリングを続けて、レポートが準備完了しているかを確認できます。
レポートが準備完了(キャッシュ)されている場合は、レポートデータとともに即座に応答を返します。私は必要なもの
は10秒まで待機し、タイムアウトにリクエストをラップで、その後、応答が完了するまでに長い10秒以上かかる、と報告書は準備ができているかどうか尋ねるためにポーリングにサーバーを起動する場合は中止しますまだ。しかし、要求が10秒未満で解決された場合、タイムアウトをキャンセルし、通常どおりに約束を実行する必要があります。
これはどのように処理するかわかりません。
はい、これは理想的ですが、残念なことに、この特定の作業の範囲では実行できないアーキテクチャ上の実装です。私たちはロードマップを持っていますが、いくつかのノックオン効果などがあるBEの非同期処理の変更が必要です。 – AgmLauncher