2012-02-02 26 views
6

Actualmente estoy escribiendo un sistema distribuido utilizando hazelcast. Tengo algunas preguntas sobre Colas implementadas usando Hazelcast.Hazelcast Queue Info

  1. ¿Cuál es la mejor manera de procesar datos de la cola? Actualmente tengo hilos en cada "nodo" leyendo la cola de bloqueo que procesa los datos. ¿Es correcto o hay alguna clase de la que no tengo conocimiento que se encargue de esto como JMS o messageListener?
  2. Veo que hay una configuración de tiempo de vida en segundos que eliminará la entrada de la cola una vez que haya expirado. Mi pregunta es ... ¿hay alguna forma de detectar la eliminación de un elemento caducado de la cola? Sé que hay oyentes, pero esto no ayuda, ya que esto se dispara en todos los "nodos" y no solo en uno. Estoy buscando una forma de ejecutar código para cada mensaje caducado (similar a una cola de letra muerta).

Cualquier contribución o consejo sobre esta cuestión sería muy apreciada.

Gracias

Respuesta

9
  1. no hay otra manera en este momento. Por lo tanto, tendrá sus hilos en cada nodo llamando a queue.take(). El equipo de Hazelcast está planeando agregar IQueue.addQueueConsumer (QueueConsumer) que se comportará de manera similar a JMS MessageListener

  2. Tienes razón. Agregar oyentes no es una buena manera de hacerlo, ya que es una operación muy costosa. Es posible que desee crear un problema para esto al http://code.google.com/p/hazelcast/issues. Sin duda es bueno tener la función.

-talip @ Hazelcast

+0

Gracias por su respuesta! – Paul

+1

Simplemente curioso si alguno de estos elementos ha sido abordado desde 2012. – Snekse

+1

no, addQueueConsumer aún falta: http://docs.hazelcast.org/docs/3.6/javadoc/com/hazelcast/core/IQueue.html –