Estoy trabajando en un juego multijugador y necesita una cola de mensajes (es decir, mensajes entrantes, mensajes salientes, sin duplicados ni mensajes eliminados, suponiendo que no haya desalojos inesperados de la memoria caché). Aquí están las colas basadas en memcache yo sepa:¿Cola de mensajes basada en Memcache?
- MemcacheQ: http://memcachedb.org/memcacheq/
- Starling: http://rubyforge.org/projects/starling/
- Depcached: http://www.marcworrell.com/article-2287-en.html
- gorrión: http://code.google.com/p/sparrow/
aprendí el concepto de la cola de Memcache de this blog post:
Todos los mensajes se guardan con un entero como clave. Hay una clave que tiene la siguiente clave y otra que tiene la clave del mensaje más antiguo en la cola. Para acceder a ellos, el método de incremento/disminución se utiliza como atómico, por lo que hay dos teclas que actúan como bloqueos. Se incrementan, y si el valor de retorno es 1, el proceso tiene el bloqueo, de lo contrario, sigue incrementándose. Una vez que el proceso finaliza, el valor vuelve a 0. Simple pero efectivo. Una advertencia es que el número entero se desbordará, por lo que existe una lógica en el lugar que establece las claves utilizadas en 1 una vez que estamos cerca de ese límite. Como la operación de incremento es atómica, el bloqueo solo es necesario si se utilizan dos o más memorias de almacenamiento (para la redundancia), para mantenerlas sincronizadas.
Mi pregunta es, ¿hay un servicio de cola de mensajes basado en Memcache que se pueda ejecutar en App Engine?
Supongo que la caducidad de los elementos en la memoria caché se basará en la inactividad, por lo que si la vida útil de la cola es como usted dice, probablemente esté bien. Aunque hay muchos calificadores en esa declaración, definitivamente necesitaría manejar los elementos perdidos en la cola. –
También necesito usar una cola de mensajes con GAE, pero no tengo idea de cómo conectar los servicios de cola basados en memcache mencionados anteriormente (MemcacheQ, gorrión, etc.) con GAE, ya que GAE solo admite Java y Python, así que lo haría gustaría saber alguna idea sobre eso. Además, ¿cuáles son los otros servicios de cola de mensajes que podemos utilizar con GAE, que no sea AmazonSQS? –