2016-09-25 31 views
0

我正在使用在angularjs中構建的前端以及在app引擎中構建的python和webapp2中的後端。App Engine前端等待後端完成並返回數據 - 正確的方法是什麼?

後端調用第三方API,獲取數據並返回到前端。

來自後端的API請求可能需要長達30秒或更長時間。問題是前端在得到數據之前無法進一步發展。

我試着運行3個併發請求到後端使用不同的選項卡,其中2個失敗。恐怕這似乎表明該應用程序一次只允許一個用戶。

處理這個問題的最佳方法是什麼?一隻想到我已經是:

  • 使用task queues運行API調用第三方的背景
  • 創建一個新的處理程序從隊列發送的最後一個任務讀取,讓前端調查這一項在定期
  • 更新一次數據可用

前端是,正確的方法是什麼?我確信這是一個在前端+後端類型的世界中解決的問題,但我只是不知道要搜索什麼。

謝謝!

+0

可能會使前端調用同步並顯示一個動畫gif說,請等到api返回數據。 – whoopididoo

+0

@whoopididoo - 我已經這樣做了,但似乎我一直在收到DeadlineExceededErrors –

回答

1

來自前端的請求以30秒爲上限;之後,他們在服務器端超時。這是GAE設計的一部分。來自任務隊列的請求需要10分鐘,所以你的想法是可行的。但是,您需要一些標識符用於輪詢,而不是僅使用「上次發送的」來區分併發任務。

+0

感謝您的建議。是的,我正在考慮使用用戶電子郵件和請求類型的唯一標識符來跟蹤它。我也在看端點,並且它是自動的10分鐘時間段,我想知道這是否是正確的方法。 –

+0

你可以使用這樣的ID。在排隊任務時,我可能會在服務器端生成一個唯一的ID,並將該ID包含在迴應前端的響應中。 –

+0

偉大的想法!謝謝,我想我會用它! –

相關問題