2016-10-11 19 views
1

我試圖創建一個應用程序,用戶從其地理位置發送JSON到服務器,並且服務器從該位置發送的第一個請求開始5秒內收集來自該位置的所有請求。我想將所有請求存儲在hashmap中,其中key是LocationKey,值是來自該位置的所有請求的列表。我很難在aws lambda中對它進行建模,因爲它只是api調用,所以編碼基於時間的應用程序很難概念化。另外我不確定我會在哪裏存儲hashmap。我是新手後端開發,任何幫助將不勝感激。基於時間的應用程序可能使用aws lambda?

該應用程序服務器的關係如下:

用戶的手機:

  1. 創建一個JSON {LocationKey,用戶名,活動促銷..}。
  2. 將該JSON發送到服務器。

服務器:

  1. 如果LocationKey不HashMap的存在 - >(1)創建一個新的HashMap值
    <重點:LocationKey,值:< < Request1>>>
    (2)啓動計時器

  2. 如果LocationKey存在於散列表中並且計時器尚未過期 然後將請求添加到散列表基於LocationKey
    <鍵:LocationKey,值:< < Request1>,<請求2>>>

  3. 如果計時器已結束

    (1)返回的散列映射值到每個請求中的散列映射

    (2)刪除的散列映射條目

任何幫助將不勝感激!!

回答

1

您必須將數據存儲在Lambda之外的某個位置,並且每次調用Lambda時都要查看它。我認爲將數據存儲在DynamoDB中可以很好地適用於您的情況。

+0

同意。每個Lambda調用都可以將數據存儲在DynamoDB中,等待5秒鐘,從DynamoDB讀取並返回響應。不要將概念化爲「服務器」,而應將其視爲每個用戶調用使用DynamoDB在任務之間進行通信的獨立「任務」。而不是從DynamoDB中刪除數據,只需忽略那些比所需時間早的東西,從而消除「清理」階段。認爲規模! –

相關問題