2010-02-18 17 views
15

Estoy en el proceso de escribir un sistema de cola de mensajes.Sistema de cola de mensajes

Mi pregunta es ... ¿Es mejor hacer esta cola con los archivos o en una base de datos?

Si tuviera que elegir la base de datos, necesita buscar nuevos trabajos cada segundo y eso me parece un poco caro.

Si se trata de archivos, supongo que solo supervisa constantemente la carpeta y ejecuta en función de eso?

BR,

Respuesta

28

¿No reinventthewheel.

[Editar: actualizado para 2014, ahora vinculando a MQ de conejo ya que Ayende ha pasado a hacer bases de datos de documentos y no a colas de mensajes, pero nuevamente se ha activado RabbitMQ. Yo no estaría escribiendo esto, pero ahora los mensajes necesito 30 caracteres, así que necesito a chismear un poco.]

2

Depende de sus requisitos, pero si necesita hacer cola múltiples mensajes como un solo grupo, necesitará algún tipo de soporte transaccional. En ese caso, la base de datos es tu amiga.

3

¿Cómo puede que desee ver en MSMQ

+0

Como no utilizas meta meta frecuentemente, estoy comentando aquí para informarte que he respondido a tu publicación sobre esta pregunta en meta. –

2

¿Estás escribiendo un sistema de cola de mensajes ya que desea escribir un mensaje sistema de cola; ¿o es solo parte de resolver un problema mayor?

Sugeriría que no se escriba un nuevo sistema de cola de mensajes. Puede usar MSMQ o algo más de la estantería.

5

¿Cuáles son sus criterios para decidir "Mejor"? ¿actuación? escalabilidad? ¿confiabilidad? ¿costo?

Las ventajas y desventajas básicas son:

base de datos - soporte transaccional, garantías de integridad (a través de restricciones), compatibilidad con consultas más rica, probablemente escalará mejor (dependiendo de la aplicación)

sistema de archivos - más barato, más simple, menos partes móviles (al menos inicialmente)

Es posible que desee buscar soluciones existente en primer lugar - MSMQ, agente de SQL Server, librerías de código abierto tales como colas de Rhino (http://ayende.com/Blog/archive/2008/08/01/Rhino-Queues.aspx)

Cuestiones relacionadas