[英]iOS Parse.com updating objects
我正在建立一個使用parse作為后端的照片共享應用程序。 現在,我想在用戶單擊“贊”按鈕后使用以下命令更新每個照片對象的numberOfLikes屬性:
[photoObject incrementKey:@"numberOfLikes"];
[photoObject saveInBackground];
我的問題是,假設有多個用戶同時喜歡同一張照片,這些喜歡的請求是否會在處理隊列中? (Parse會一一處理嗎?)假設這張照片有0個贊,那么在網絡條件相同的情況下,有5個用戶同時喜歡它,保存后的最終結果是1還是5?
抱歉,這個問題看起來很傻,或者我的描述令人困惑。 我對Parse很陌生。 謝謝。
Parse中的某些函數是原子函數,incrementKey恰好是其中之一。
https://parse.com/questions/concurrency-management-in-parse
保存時,遞增鍵方法是原子的。 因此,過程如下:
玩家A調用獎品上的增量密鑰方法,並嘗試保存(使用回調函數。)玩家B調用獎品上的增量密鑰方法,並嘗試保存(使用回調函數。)玩家A或玩家B的回調都將運行,numberOfWins為6。剩余的Players回調運行,numberOfWins為7。
您還可以使用這些功能實現某種鎖定機制,如本問題所示。
https://parse.com/questions/locking
David的解決方案很聰明並且有效(incrementKey是原子的)。 如果創建的GameRequest對象具有“ challengers”:0值,則每個質詢者都可以調用crementKey:@“ challengers”。 保存后,如果挑戰者的值是1,則他們是第一個提交的挑戰者。 我特別喜歡這個解決方案,因為它也適用於N個玩家游戲。 同樣,您可以使用addUnique :(也是原子的)將用戶ID添加到挑戰者列表中。
最后回答您的問題,應該是5,因為它們是一個接一個地執行,而不是同時執行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.