2010-02-18 7 views
15

Je suis en train d'écrire un système de file d'attente de messages.Système de file d'attente de messages

Ma question est ... Est-il préférable de faire cette file d'attente avec des fichiers ou dans une base de données?

Si je devais choisir la base de données, elle devrait vérifier les nouveaux travaux chaque seconde et cela me semble un peu trop lourd?

S'il s'agit de fichiers, je suppose que vous surveillez constamment le dossier et que vous l'exécutez en fonction de cela?

BR,

Répondre

28

Ne pas reinventthewheel. [Edit: mise à jour pour 2014, maintenant liée au lapin MQ comme Ayende est passé à faire des bases de données de documents et non des files d'attente de messages, mais encore une fois RabbitMQ est venu. Je ne serais pas en train d'écrire cela, mais maintenant les messages besoin de 30 caractères, alors je dois blabber un peu.]

2

Cela dépend de vos besoins, mais si vous avez besoin de faire la queue plusieurs messages en un seul groupe, vous aurez besoin d'une sorte de soutien transactionnel. Dans ce cas, la base de données est votre ami.

3

Comment pourrait regarder dans MSMQ

+0

Puisque vous n'êtes pas souvent sur Meta, je commente ici pour vous faire savoir que j'ai répondu à votre message à propos de cette question sur meta. –

2

Vous écrivez un système de file d'attente de message parce que vous voulez écrire un message système de file d'attente; ou est-ce juste une partie de résoudre un plus gros problème?

Je suggère de ne pas écrire un nouveau système de file d'attente de messages. Vous pouvez utiliser MSMQ ou quelque chose d'autre dans le commerce.

5

Quels sont vos critères pour décider "Mieux"? performance? l'évolutivité? fiabilité? Coût?

Les compromis de base sont les suivants:

Base de données - support transactionnel, des garanties d'intégrité (via des contraintes), support des requêtes plus riche, probablement intensifiera mieux (en fonction de la mise en œuvre)

système de fichiers

- moins cher, plus simple, moins de pièces mobiles (au moins initialement)

Vous pouvez regarder des solutions existantes en premier lieu - MSMQ, courtier SQL Server, les bibliothèques open source telles que les files d'attente Rhino (http://ayende.com/Blog/archive/2008/08/01/Rhino-Queues.aspx)

Questions connexes