我有n個並行任務正在運行。當所有這些任務完成後,我想創建另一個任務。做這個的最好方式是什麼 ?由於數據存儲操作速度較慢,因此我使用了memcache。每次完成任務後,我都會將計數器遞增1。我一直在檢查櫃檯n。由於memcache不可靠,因此計數器值有時會丟失。其他解決方案?Google App Engine屏障同步
2
A
回答
5
由於您不能丟失計數器,因此您需要使用數據存儲庫以確保計數器不會丟失(例如,由於意外的內存緩存驅逐)。但是,您可以使用也可以將值存儲在memcache中 - 這樣您仍然可以從memcache快速讀取計數器(如果memcache條目已過期,則轉到數據存儲以獲取計數)。
如果你有太多的並行運行任務,增加數據存儲計數器速度太慢,那麼考慮使用sharded counter來緩解這個瓶頸。
+0
我同意David,在GAE memcache中有對這種情況的原子操作,此計數器https://github.com/gregbayer/gae-livecount使用memcahe與數據存儲將值保存在單獨的任務中,我使用它並它運作非常好。我打算給分區櫃檯一個嘗試。 – 2013-08-06 02:17:56
2
我會建議使用appengine-pipeline
Intenally它實現了高配車型的屏障。
相關問題
- 1. App Engine上的同步
- 2. Selenium(XercesImpl)和Google App Engine的故障
- 3. Qt同步屏障?
- 4. 與App Engine同步教程
- 5. 線程屏障同步
- 6. Google App Engine HTTP
- 7. Google App Engine - java.security.AccessControlException?
- 8. Google App Engine
- 9. Google App Engine APNS
- 10. App Engine + Google Documents
- 11. Google App Engine ASP.net
- 12. Google App Engine ThreadSafe
- 13. Google App Engine Memcache
- 14. Google App Engine Blob
- 15. Google App Engine Geohashing
- 16. Google App Engine DeobfuscatorBuilder
- 17. SSLHandshakeError - Google App Engine
- 18. Google App Engine - JDODetachedFieldAccessException
- 19. Google App Engine Profiler
- 20. Python - Google App Engine
- 21. Google App Engine - 從App Engine Helper升級
- 22. 在Google App Engine中同步刪除數據存儲條目
- 23. 'Google App Engine'遠比'Google Compute Engine'貴嗎?
- 24. Google App Engine - 死鎖?
- 25. Google App Engine + SpringBoot + Docker
- 26. Google App Engine - Wordpress Importer
- 27. Google App Engine unique = True?
- 28. Twitter4j Google App Engine - java.lang.NoClassDefFoundError
- 29. Google App Engine或Django?
- 30. Google App Engine代理
「由於memcache不可靠」 - 嗯?你有沒有想過這可能是你的代碼有錯? – 2011-03-06 01:10:59
@Mitch:我認爲Sam指的是memcache可能會隨時驅逐任何條目的事實 - 因此不適合存儲您無法承受的價值(如上述Sam所述) 。 – 2011-03-06 02:26:55
@戴維安德希爾:好,好點。 – 2011-03-06 02:55:54