我想在Go中製作一個簡單的GAE應用程序,讓用戶用兩種方式投票和存儲他們的答案。第一種方式將是原始數據(「投票給X的數據庫存儲」),第二種方式是這些投票的計數(「X代表12票,Y代表10票)」。什麼是同時存儲這兩個值的有效方法是多人同時訪問應用程序?如果我從數據存儲中檢索數據,將其更改並將其保存回一個實例,另一個可能想要並行執行相同的操作,並且我不確定最終結果是否正確。Google App Engine Go計分和保存
0
A
回答
1
這似乎是一個很好的方法,就是將所有投票事件簡單地存儲爲單獨的實體(「投票支持X」),並使用Task Queue進行重新計算(「12票X,10票Y「方式),因此重新計算是按離線和順序完成的(沒有任何種族和其他併發問題)。然後,您必須每隔一段時間將重新計算任務置於隊列中,以便更新結果。
任務隊列不允許添加具有與現有名稱相同名稱的其他任務,但不允許檢查特定任務是否已入隊,因此可能只是嘗試將具有相同名稱的任務添加到隊列將足以確保多個重新計算任務不存在。
另一種方法是使用等待來自輸入通道的戳的goroutine來重新計算結果。我沒有在App Engine上運行這樣的goroutine,所以我不確定這種方法的一般行爲。
相關問題
- 1. Google App Engine數據存儲在Go中分片
- 2. Google App Engine計數
- 3. Google App Engine Go HTTP Post []字節
- 4. Google App Engine Go模板更新問題
- 5. Google App Engine:保存對象列表?
- 6. Google App Engine/JDO:存儲計算值
- 7. Go App Engine調試
- 8. Google App Engine Geohashing
- 9. Google App Engine Blob
- 10. Lucene和Google App Engine
- 11. Google Checkout和App Engine
- 12. Google App Engine和Android?
- 13. Xubuntu和Google App Engine
- 14. Google App Engine和android
- 15. Google App Engine和Restlet
- 16. Google App Engine和dos.xml
- 17. Classes和Google App Engine
- 18. Google App Engine和OpenID
- 19. 保護Google App Engine端點
- 20. Google App Engine計數器
- 21. Google App Engine和Google Storage
- 22. Google App Engine和Google Calendar API
- 23. Google App Engine和Google Apps Marketplace
- 24. Google App Engine和Google Big Query
- 25. Google App Engine中的查詢/數據存儲問題 - Go API
- 26. Google App Engine Profiler
- 27. Google App Engine關係表和分頁?
- 28. Google App Engine存儲庫和Android Studio
- 29. Google App Engine和鍵值存儲
- 30. Google App Engine - 使用CloudSQL和存儲GAE