我有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. Qt同步屏障?
- 2. Selenium(XercesImpl)和Google App Engine的故障
- 3. 与App Engine同步教程
- 4. 线程屏障同步
- 5. Google App Engine
- 6. Google App Engine Memcache
- 7. Google App Engine DeobfuscatorBuilder
- 8. Google App Engine Profiler
- 9. Google App Engine ASP.net
- 10. Google App Engine ThreadSafe
- 11. Python - Google App Engine
- 12. App Engine + Google Documents
- 13. SSLHandshakeError - Google App Engine
- 14. 'Google App Engine'远比'Google Compute Engine'贵吗?
- 15. template.render()Google App Engine(python)
- 16. Google App Engine JDO 3
- 17. Classes和Google App Engine
- 18. Lucene和Google App Engine
- 19. Google App Engine和dos.xml
- 20. Google App Engine扭曲
- 21. Google App Engine - SSL InsecurePlatformWarning
- 22. Google App Engine +验证
- 23. Google App Engine错误
- 24. Google App Engine代理
- 25. Google App Engine功能
- 26. Google App Engine Python Cron
- 27. Google App Engine unique = True?
- 28. Google App Engine - 死锁?
- 29. Google App Engine与Eclipse?
- 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