我正在开发一个多人游戏,它需要一个消息队列(即,消息输入、消息输出、没有重复或删除的消息,假设没有意外的缓存驱逐)。以下是我知道的基于内存缓存的队列:
- MemcacheQ: http: //memcachedb.org/memcacheq/
- 八哥:http ://rubyforge.org/projects/starling/
- 已缓存:http : //www.marcworrell.com/article-2287-en.html
- 麻雀:http ://code.google.com/p/sparrow/
我从这篇博文中了解了 memcache 队列的概念:
所有消息都以整数作为键保存。有一个键具有下一个键,另一个键具有队列中最旧消息的键。要访问这些,增量/减量方法用作其原子,因此有两个充当锁的键。它们递增,如果返回值为 1,则进程拥有锁,否则它继续递增。一旦该过程完成,它会将值设置回 0。简单但有效。一个警告是整数会溢出,因此一旦我们接近该限制,就有一些逻辑将使用的键设置为 1。由于增量操作是原子的,因此只有在使用两个或更多内存缓存(用于冗余)时才需要锁定,以保持它们同步。
我的问题是,是否有可以在 App Engine 上运行的基于 memcache 的消息队列服务?