是否有一個選項可以使用單個API掃描&更新DynamoDB表中的記錄。考慮一下Items列表中的項目列表,其中包含字段(ItemID,ItemName,ItemAssigned)。 ItemID是表格的哈希鍵。項目ID的名稱類似於Item1,Item2,Item3等,用戶不知道表中的項目是什麼。所以,在應用程序中,如果用戶點擊「獲取物品」按鈕,則隨機物品將被提取並分配給他。然後將ItemAssigned設置爲YES。項目標籤然後該項目不會被分配給任何其他用戶。這是發生了什麼事。Amazon Dynamo DB - 掃描和更新表記錄 - iOS SDK
步驟:
1.水龍頭「獲取項目」,從項目表,其中ItemAssigned = NO
3.在主屏幕上顯示的項目
2.掃描中的第一項
4.更新項目表中設置ItemAssigned = YES
如果一個用戶試圖一次獲取該項目,這很好。當兩個用戶A & B試圖同時獲取一個項目,並將同一項目分配給兩個用戶時,會發生此問題。
所以先A取物品。在Item表被更新以設置ItemAssigned = YES之前,B也獲取相同的項目。現在B的主屏幕A &顯示相同的項目。這是錯誤的。
唯一的辦法就是掃描&使用單個API更新Items表。有沒有可能在Amazon DynamoDB中執行此操作?
謝謝。
謝謝你的回答。這裏的問題是掃描和更新之間的延遲。在兩者之間的差距,其他用戶也掃描相同的項目。我覺得DynamoDB根本不適合這種類型的應用程序。我對嗎? – EmptyStack
@EmptyStack是的,會有一段時間,多個用戶可以看到掃描中的相同項目,但使用條件更新和一些額外的邏輯可以確保只有一個用戶實際看到該項目。 –
謝謝。我明白你的意思。但問題在於,第二位用戶在從第一位用戶更新項目之前有更多機會獲取該項目。 – EmptyStack